1、前言
iOS 10.0
Xcode 13.3.1
SwiftRichString 4.0.0
本来我们UI制定的图上面只是文字,但是由于后台输入框能添加图片,我们原定只加载文本,变成了富文本,样式如下
1.2、情景2 一个AI互动页面,简单的虚拟聊天,聊天内容可能会出现多个图片
2 解决方法
2.1 计算富文本宽高
因为富文本中带有网络图片,所以要计算出图片宽度的富文本宽高
1、网上很多方法我看都计算不出来,我再 img 标签后面给网络图片添加个宽度,就可以了(可能是因为我们的富文本不规范吧,img标签都没有设置width)
2. 计算宽高时候发现,p标签会导致高度偏高,所以我给替换掉了(如有大佬知道原因,或者能给出其他方法,请留言@我)
/// html字符串 文本域宽度 字体大小
public func getAttriSize(text: String, width: CGFloat, font: UIFont) -> CGSize {
var html = "<head><style>img{max-width:\(width) !important;height:auto}</style></head>\(text)"
html = html.replacingOccurrences(of: "<img", with: "<img width=\"\(width)\"")
html = html.replacingOccurrences(of: "<p>", with: "