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