UILabel添加图片之富文本的简单应用

Posted apologize的ios学习足迹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UILabel添加图片之富文本的简单应用相关的知识,希望对你有一定的参考价值。

若想对UILabel添加图片,那么就需要使用NSMutableAttributedString来定义
先定义一个普通的label

UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, self.view.frame.size.width-10, 100)];
lab.numberOfLines = 0;
[self.view addSubview:lab];

然后对其定义

//创建富文本
NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:@"   我纳斯达克市场部撒草卡死你查看售楼处内 按时打算打算的撒打算离开的骄傲是是大神快了解到撒开了就对啦可视对讲卢卡斯的卡洛斯的骄傲"];
//NSTextAttachment可以将要插入的图片作为特殊字符处理
NSTextAttachment *attch = [[NSTextAttachment alloc] init];
//定义图片内容及位置和大小
attch.image = [UIImage imageNamed:@"tab_suning"];
attch.bounds = CGRectMake(0, 0, 61, 14);
//创建带有图片的富文本
NSAttributedString *string = [NSAttributedString attributedStringWithAttachment:attch];
//将图片放在最后一位
//[attri appendAttributedString:string];
//将图片放在第一位
[attri insertAttributedString:string atIndex:0];
//用label的attributedText属性来使用富文本
lab.attributedText = attri;

然后效果如下

技术分享

若想对图片添加点击事件,现在的想法是在label上添加一个透明按钮,位置大小跟图片的相同

lab.userInteractionEnabled = YES;
UIButton *clearBtn = [UIButton buttonWithType:UIButtonTypeCustom];
clearBtn.frame = CGRectMake(0, 12, attch.bounds.size.width, attch.bounds.size.height+3);
clearBtn.backgroundColor = [UIColor clearColor];
[clearBtn addTarget:self action:@selector(alertSth) forControlEvents:UIControlEventTouchUpInside];
[lab addSubview:clearBtn];

效果如下

技术分享

以上是关于UILabel添加图片之富文本的简单应用的主要内容,如果未能解决你的问题,请参考以下文章

iOS踩过的坑之富文本计算文字高度

iOS之富文本总结

微信小程序之富文本编辑组件editor的简单使用

Java开发之富文本编辑器TinyMCE

iOS文字编辑之富文本介绍

UILabel 文本前多余的空格