我有一个 UITextView,它嵌入在 UIView 中,而许多其他 UIView 都在 UIScrollView 中(本质上是一种形式)。而不是 textView 自动扩展内容,我有一个按钮,我希望用户能够单击并展开/折叠 textView。
这是我所拥有的:
var textViewIsExpanded: Bool = false {
didSet {
if self.textViewIsExpanded {
self.expandTextViewButton.isSelected = true
guard self.myTextView.contentSize.height > 70 else { return }
self.myTextView.isScrollEnabled = false
self.myTextView.translatesAutoresizingMaskIntoConstraints = true
self.myTextView.sizeThatFits(CGSize(width: self.scrollView.width - 24, height: CGFloat.greatestFiniteMagnitude))
} else {
self.expandTextViewButton.isSelected = false
self.myTextView.isScrollEnabled = true
self.myTextView.translatesAutoresizingMaskIntoConstraints = false
}
}
}
@IBAction func expandTextViewButtonTapped(_ sender: UIButton) {
textViewIsExpanded.toggle()
}
我已经尝试.sizeToFit()
过代替.sizeThatFits(...)
哪种工作,但它调整了宽度和高度的大小,我只是想扩展/折叠高度。我猜这是正确实施 CGSize 和/或 IB 约束的问题,但我无法找到一个我想要的解决方案。