我在滚动视图中有一个包含动态文本的文本标签。几行文本从标签底部被剪掉。我已经使用自动布局在 Storyboard 中设置了所有内容。
我已经尝试在另一个帖子的 UIScrollView 上的 ViewDidLoad 中切换 isScrollingEnabled 无济于事。
我还尝试删除文本标签上的底部约束并填充它
我已经通过消除过程将问题缩小到我用来更改 HTML 中的字体的扩展,因为我正在使用 html 属性字符串。我不明白为什么这会切断文本,有时只是几行,有时是大部分内容,有时是所有内容都丢失了
extension NSAttributedString {
func changeHTMLFont(_ text: NSAttributedString) -> NSAttributedString {
let newAttributedString = NSMutableAttributedString(attributedString: (text))
newAttributedString.enumerateAttribute(NSAttributedStringKey.font, in: NSMakeRange(0, newAttributedString.length), options: []) { value, range, stop in
guard let currentFont = value as? UIFont else {
return
}
//USE FOR FACE OPTIONS
let fontDescriptor = currentFont.fontDescriptor.addingAttributes([UIFontDescriptor.AttributeName.family: "Optima", UIFontDescriptor.AttributeName.face: "Bold"])
//let fontDescriptor = currentFont.fontDescriptor.addingAttributes([UIFontDescriptorFamilyAttribute: "Optima"])
if let newFontDescriptor = fontDescriptor.matchingFontDescriptors(withMandatoryKeys: [UIFontDescriptor.AttributeName.family]).first {
let newFont = UIFont(descriptor: newFontDescriptor, size: 32.0) //use size: currentFont.pointSize for default font size
newAttributedString.addAttributes([NSAttributedStringKey.font: newFont], range: range)
}
}
return newAttributedString
}
}
故事板层次结构:
UITextLabel 约束(Superview 是 UIScrollView):
更新的图像:
滚动前的屏幕视图:
到达标签底部时的屏幕视图: