关于textkit富文本的练习
2016-01-07 14:20
330 查看
上午闲暇时间练习了一下textkit的基本功能练习
1.首先在viewdidload里
_strText = @"asjasdajksdh时空裂缝好色了符合啊我发哈我诶腹黑女为号发文发我份哈里斯的发生的房间卡萨:杀敌发回来说发生;分类看到asdf;jkaf ;laksjf as;df jaweriawejrf借我我哦加我覅哦啊额无法骂开了家阿斯顿;付款啦就是对方考虑;啊;费附加阿尔派为覅及咖啡了等级;看到了沙发加我配件";
_textView = [[UITextView alloc]initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height)];
_textView.backgroundColor = [UIColor cyanColor];
_textView.text =_strText;
_textView.font = [UIFont systemFontOfSize:15];
_textView.editable = NO;
_textView.delegate = self;
[self.view addSubview:_textView];
//图片位置
_imageView = [[UIImageView alloc]initWithFrame:CGRectMake(120, 120, 100, 100)];
_imageView.image = [UIImage imageNamed:@"01.jpg"];
_imageView.userInteractionEnabled = YES;
[self.view addSubview:_imageView];
UIPanGestureRecognizer * panges = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(imagepan:)];
[_imageView addGestureRecognizer:panges];
_textView.textContainer.exclusionPaths = @[[self bezierPath]];
[self normalAttribute];
[self setupEmojiAndLink];
//设置环绕的路径方法
-(UIBezierPath *)bezierPath
{
//设置环绕的路径
CGRect butter = [_textView convertRect:_imageView.frame fromView:self.view];
CGRect butter1 = CGRectMake(butter.origin.x, butter.origin.y, butter.size.width, butter.size.height*0.9);
UIBezierPath * path = [UIBezierPath bezierPathWithRect:butter1];
return path;
}
//在文字间添加表情方法
-(void)setupEmojiAndLink
{
NSMutableAttributedString * string = [_textView.attributedText mutableCopy];
//添加表情
UIImage * image1 = [UIImage imageNamed:@"01.jpg"];
NSTextAttachment * attachment = [[NSTextAttachment alloc]init];
attachment.bounds = CGRectMake(0, 0, 30, 30);
attachment.image = image1;
NSAttributedString * attachStr1 = [NSAttributedString attributedStringWithAttachment:attachment];
[string insertAttributedString:attachStr1 atIndex:50];
_textView.attributedText = [string copy];
}
//修改文字颜色,下划线等常规属性的设置
//修改颜色,大小,下划线等等
-(void)normalAttribute
{
NSMutableAttributedString * string = [_textView.attributedText mutableCopy];
//下划线
[string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:NSMakeRange(0, 10)];
//双划线
[string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleDouble) range:NSMakeRange(10, 10)];
//加粗下划线
[string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleThick) range:NSMakeRange(20, 10)];
//分割下划线
[string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle|NSUnderlinePatternDot) range:NSMakeRange(30, 10)];
//字体颜色
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 10)];
//空心字
[string addAttribute:NSStrokeWidthAttributeName value:@(2) range:NSMakeRange(10, 10)];
_textView.attributedText = [string copy];
}
//手势拖动方法
//手势监听方法
-(void)imagepan:(id)sender
{
NSLog(@"1");
if ([sender isKindOfClass:[UIPanGestureRecognizer class]])
{
UIPanGestureRecognizer * oneSender = sender;
if (oneSender.state == UIGestureRecognizerStateBegan)
{
//返回新的坐标
_textPoint= [oneSender translationInView:_textView];
_imageCenter = _imageView.center;
}
else if (oneSender.state == UIGestureRecognizerStateChanged)
{
CGPoint currentPoint = [oneSender translationInView:_textView];
//获取开始坐标和改变坐标之差
CGFloat changeX = currentPoint.x-_textPoint.x;
CGFloat changeY = currentPoint.y-_textPoint.y;
CGPoint newCenter = _imageCenter;
newCenter.x +=changeX;
newCenter.y +=changeY;
_imageView.center = newCenter;
_textView.textContainer.exclusionPaths = @[[self bezierPath]];
}
else if (oneSender.state == UIGestureRecognizerStateEnded)
{
_imageCenter = CGPointZero;
_textPoint = CGPointZero;
}
}
}
1.首先在viewdidload里
_strText = @"asjasdajksdh时空裂缝好色了符合啊我发哈我诶腹黑女为号发文发我份哈里斯的发生的房间卡萨:杀敌发回来说发生;分类看到asdf;jkaf ;laksjf as;df jaweriawejrf借我我哦加我覅哦啊额无法骂开了家阿斯顿;付款啦就是对方考虑;啊;费附加阿尔派为覅及咖啡了等级;看到了沙发加我配件";
_textView = [[UITextView alloc]initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height)];
_textView.backgroundColor = [UIColor cyanColor];
_textView.text =_strText;
_textView.font = [UIFont systemFontOfSize:15];
_textView.editable = NO;
_textView.delegate = self;
[self.view addSubview:_textView];
//图片位置
_imageView = [[UIImageView alloc]initWithFrame:CGRectMake(120, 120, 100, 100)];
_imageView.image = [UIImage imageNamed:@"01.jpg"];
_imageView.userInteractionEnabled = YES;
[self.view addSubview:_imageView];
UIPanGestureRecognizer * panges = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(imagepan:)];
[_imageView addGestureRecognizer:panges];
_textView.textContainer.exclusionPaths = @[[self bezierPath]];
[self normalAttribute];
[self setupEmojiAndLink];
//设置环绕的路径方法
-(UIBezierPath *)bezierPath
{
//设置环绕的路径
CGRect butter = [_textView convertRect:_imageView.frame fromView:self.view];
CGRect butter1 = CGRectMake(butter.origin.x, butter.origin.y, butter.size.width, butter.size.height*0.9);
UIBezierPath * path = [UIBezierPath bezierPathWithRect:butter1];
return path;
}
//在文字间添加表情方法
-(void)setupEmojiAndLink
{
NSMutableAttributedString * string = [_textView.attributedText mutableCopy];
//添加表情
UIImage * image1 = [UIImage imageNamed:@"01.jpg"];
NSTextAttachment * attachment = [[NSTextAttachment alloc]init];
attachment.bounds = CGRectMake(0, 0, 30, 30);
attachment.image = image1;
NSAttributedString * attachStr1 = [NSAttributedString attributedStringWithAttachment:attachment];
[string insertAttributedString:attachStr1 atIndex:50];
_textView.attributedText = [string copy];
}
//修改文字颜色,下划线等常规属性的设置
//修改颜色,大小,下划线等等
-(void)normalAttribute
{
NSMutableAttributedString * string = [_textView.attributedText mutableCopy];
//下划线
[string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:NSMakeRange(0, 10)];
//双划线
[string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleDouble) range:NSMakeRange(10, 10)];
//加粗下划线
[string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleThick) range:NSMakeRange(20, 10)];
//分割下划线
[string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle|NSUnderlinePatternDot) range:NSMakeRange(30, 10)];
//字体颜色
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 10)];
//空心字
[string addAttribute:NSStrokeWidthAttributeName value:@(2) range:NSMakeRange(10, 10)];
_textView.attributedText = [string copy];
}
//手势拖动方法
//手势监听方法
-(void)imagepan:(id)sender
{
NSLog(@"1");
if ([sender isKindOfClass:[UIPanGestureRecognizer class]])
{
UIPanGestureRecognizer * oneSender = sender;
if (oneSender.state == UIGestureRecognizerStateBegan)
{
//返回新的坐标
_textPoint= [oneSender translationInView:_textView];
_imageCenter = _imageView.center;
}
else if (oneSender.state == UIGestureRecognizerStateChanged)
{
CGPoint currentPoint = [oneSender translationInView:_textView];
//获取开始坐标和改变坐标之差
CGFloat changeX = currentPoint.x-_textPoint.x;
CGFloat changeY = currentPoint.y-_textPoint.y;
CGPoint newCenter = _imageCenter;
newCenter.x +=changeX;
newCenter.y +=changeY;
_imageView.center = newCenter;
_textView.textContainer.exclusionPaths = @[[self bezierPath]];
}
else if (oneSender.state == UIGestureRecognizerStateEnded)
{
_imageCenter = CGPointZero;
_textPoint = CGPointZero;
}
}
}
相关文章推荐
- WordPress中调试缩略图的相关PHP函数使用解析
- Html5插件教程之添加浏览器放大镜效果的商品橱窗
- springmvc+spring+mybatis项目部署中遇到的问题
- 微服务架构介绍-系列文章
- android - 内存分析与内存优化
- 提升 Web开发性能的 10 个技巧
- [转]JavaScript RegExp 对象参考手册
- lua tutorial 08
- 右侧边栏滑入滑出
- 分页查询
- COMODO免费电子邮件证书
- IntentService
- 一个空间可以放两个或者更多个网站的方法
- 【c/c++】探寻C++最快的读取文件的方案
- Java SE学习之数组——匿名数组和不规则数组
- VS2015中添加新建项,找不到ado .net entity datamodel的解决方法
- armeabi armeabi-v7a mips x86 理解
- c#多线程中(interrupt的实例使用)
- CentOS5.8 HA集群之基于crm配置 heartbeat + nfs + mysql
- Java this关键字和super关键字