我创建了一个自定义文本字段,因为我需要一个使用“invalidateIntrinsicContentSize”的多行文本字段来设置文本每次更改的大小。在 iOS 15 中它可以完美运行,但在 iOS 13 和 14 中它无法正常工作。
final private class UIKitTextView: UITextView {
override var contentSize: CGSize {
didSet {
invalidateIntrinsicContentSize()
}
}
override public var intrinsicContentSize: CGSize {
get {
print("Invalidate size")
return CGSize(width: contentSize.width, height: contentSize.height)
}
}
}
我尝试调试此代码,如果我使用的是 iOS 15,它会调用 invalidateIntrinsicContentSize,然后它进入intrinsicContentSize 并设置新大小。如果我使用 iOS 13/14,则会调用 invalidateIntrinsicContentSize,但它不会进入intrinsicContentSize,因此大小不会改变。
有人能告诉我如何让它在 iOS 13/14 中工作吗?
感谢您的耐心和帮助!