iOS 15 对 NSAttributedString 的图像附件行为不同。如何固定标签的高度?
Posted
技术标签:
【中文标题】iOS 15 对 NSAttributedString 的图像附件行为不同。如何固定标签的高度?【英文标题】:iOS 15 image attachment behaviour to NSAttributedString is different. How can I fix the height of the label? 【发布时间】:2022-01-18 22:11:00 【问题描述】:在 ios 14 上,将图像附加到 NSAttributedString
时,标签的结果高度是正确的,但在 iOS 15 上它太高了。
iOS 14:
iOS 15:
代码:
view.backgroundColor = .black
label.layer.borderColor = UIColor.red.cgColor
label.layer.borderWidth = 1
let font = UIFont.systemFont(ofSize: 11, weight: .bold)
let text = NSMutableAttributedString(string: "LIVE", attributes: [.foregroundColor: UIColor.systemGreen, .font: font])
let attachment = NSTextAttachment()
attachment.image = UIImage(named: "live_indicator_image")!
let imageString = NSMutableAttributedString(attachment: attachment)
text.append(imageString)
label.attributedText = text
图片:
Xcode 版本: 13.1
模拟器: iPhone 13 (15.0)、iPhone 12 (14.4)
【问题讨论】:
【参考方案1】:我的项目有类似的问题,在 iOS14 或更早版本上显示良好,但在 iOS15 上显示错误。 为了解决这个问题,我在使用 NSTextAttachment 制作的 NSMutableAttributedString 中添加了字体属性,然后将其附加到最终文本,如下所示。 请尝试。
let attachment = NSTextAttachment()
attachment.image = UIImage(named: "live_indicator_image")!
let imageString = NSMutableAttributedString(attachment: attachment)
imageString.addAttribute(.font, value: font, range: imageString.length)
text.append(imageString)
【讨论】:
在附件字符串中添加字体属性可以解决问题,谢谢!以上是关于iOS 15 对 NSAttributedString 的图像附件行为不同。如何固定标签的高度?的主要内容,如果未能解决你的问题,请参考以下文章
iOS之深入解析Xcode 13(iOS 15)正式版发布的新特性
产品资讯 | mPaaS 10.1.68 适配 iOS 15