UILabel中加载富文本时处理图片显示问题

NSMutableAttributedString *attStr = [NSMutableAttributedString new];

NSString *style = [NSString stringWithFormat:@"<style> body { font-size: %@px;  } p:last-of-type { margin: 0; }</style>", @(CLScaleValue(13))];

NSString *content = @"富文本内容";
NSString *styledHtml = [NSString stringWithFormat:@"%@%@", style, content];
            [attStr appendAttributedString:[[NSAttributedString alloc] initWithData: [styledHtml dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil]];
            
//遍历富文本得到NSTextAttachment类,改变图片的大小
 [attStr enumerateAttribute:NSAttachmentAttributeName inRange:NSMakeRange(0, attStr.length) options:0 usingBlock:^(id  _Nullable value, NSRange range, BOOL * _Nonnull stop) {
                
                if ([value isKindOfClass:[NSTextAttachment class]]) {
                    NSTextAttachment * attachment = value;
                    CGFloat height = attachment.bounds.size.height;
                    CGFloat width = attachment.bounds.size.width;
                    CGFloat tempHeight = height/(width/(CLSCREENWIDTH-60));
                    //根据显示宽度进行等比缩放
                    attachment.bounds = CGRectMake(0, 0, CLSCREENWIDTH-60, tempHeight);
                }
            }];

解决IOS 显示富文本时,图片显示超出屏幕问题。

来源参考:https://www.jianshu.com/p/3243d8c130a2

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值