internalContentSize和autoresizingMask之间的关系

时间:2019-02-03 11:08:43

标签: swift autoresizingmask inputaccessoryview intrinsic-content-size

我正在使用自定义视图,该视图用作inputAccessoryView。 它具有一个textView和一个按钮。

随着textView大小的增加,自定义视图的高度也应增加。因此,我在自定义视图中将autoresizingMask定义为.flexibleHeight

但是autoresizingMask仅在覆盖intrinsicContentSize时才有效,即使返回值是.zero

问题是,是否定义了autoresizingMask仅对intrinsicContentSize有效?我想知道它们之间的关系。

还可以通过intrinsicContentSize而不是autoResizingMask更新invalidateIntrinsicSize吗?

示例代码:

final class CommentInputAccessaryView: UIView {
    private let commentTextView: UITextView = {
        let tv = UITextView()
        tv.isScrollEnabled = false
        ...
        return tv
    }()

    private let commentSubmitButton: UIButton = {
        let btn = UIButton(type: .system)
        btn.setTitle("Submit", for: .normal)
        ...
        return btn
    }()

    override var intrinsicContentSize: CGSize {
        return CGSize(width: 0, height: 50)
    }

    init() {
        super.init(frame: .zero) // It doesn't matter if the frame size not defined.
        ...
        autoresizingMask = .flexibleHeight
        ...
    }
}

0 个答案:

没有答案