1

我创建了一个自定义文本字段,因为我需要一个使用“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 中工作吗?

感谢您的耐心和帮助!

4

0 回答 0