UILabel多行的情况下在最后的文本后面增加一个小图标
先看下设计需求:
文章图片
UILabel+image.png 在label的文本后面,需求是跟着一个小图标。
直接使用 NSAttributedString
实现,直接看代码。
// 实现图文混排的方法
- (NSAttributedString *) creatAttrStringWithText:(NSString *) text image:(UIImage *) image{// NSTextAttachment可以将图片转换为富文本内容
NSTextAttachment *attachment = [[NSTextAttachment alloc] init];
attachment.image = image;
// 通过NSTextAttachment创建富文本
// 图片的富文本
NSAttributedString *imageAttr = [NSAttributedString attributedStringWithAttachment:attachment];
NSMutableAttributedString *mutableImageAttr = [[NSMutableAttributedString alloc] initWithAttributedString:imageAttr];
[mutableImageAttr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15] range:NSMakeRange(0, imageAttr.length)];
// 调整图片的位置,负数代表向下
[mutableImageAttr addAttribute:NSBaselineOffsetAttributeName value:@(-2) range:NSMakeRange(0, imageAttr.length)];
// 文字的富文本
NSAttributedString *textAttr = [[NSMutableAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]}];
NSMutableAttributedString *mutableAttr = [[NSMutableAttributedString alloc] init];
// 将图片、文字拼接
// 如果要求图片在文字的后面只需要交换下面两句的顺序
[mutableAttr appendAttributedString:textAttr];
[mutableAttr appendAttributedString:mutableImageAttr];
return [mutableAttr copy];
}
【UILabel多行的情况下在最后的文本后面增加一个小图标】事例:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 50, 200, 400)];
label.numberOfLines = 0;
[self.view addSubview:label];
UIImage *image = [UIImage imageNamed:@"test.png"];
label.attributedText = [self creatAttrStringWithText:@"此外,只要能访问区块链,就可以访问存储的信息。允许进行安全的、分布式的存储,并访问存储结果,例如,为了进行完整性验证,又比如,检查一个产品的供应商是否具有安全标记,是不是产品的发起者。" image:image];
推荐阅读
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 爱就是希望你好好活着
- 昨夜小楼听风
- 知识
- 死结。
- 我从来不做坏事
- 烦恼和幸福
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- Linux下面如何查看tomcat已经使用多少线程
- 说得清,说不清