【发布时间】:2021-08-03 17:51:10
【问题描述】:
我有一个 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 约束的问题,但我无法找到一个我想要的解决方案。
【问题讨论】:
标签: ios swift xcode uitextview sizetofit