Связь между intrinsicContentSize и autoresizingMask - PullRequest
0 голосов
/ 03 февраля 2019

Я работаю над пользовательским представлением, которое используется как 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
        ...
    }
}
...