【发布时间】:2020-07-18 09:39:40
【问题描述】:
我正在尝试为 UIScrollView 内的 UITextView 的高度约束设置动画。当用户点击“切换”按钮时,文本应该从上到下以动画形式出现。但不知何故,UIKit 在完整视图中消失了。
为了确保“动态”高度取决于内在内容大小,我将高度约束设置为零。
@IBAction func toggle() {
layoutIfNeeded()
UIView.animate(withDuration: 0.6, animations: { [weak self] in
guard let self = self else {
return
}
if self.expanded {
NSLayoutConstraint.activate([self.height].compactMap { $0 })
} else {
NSLayoutConstraint.deactivate([self.height].compactMap { $0 })
}
self.layoutIfNeeded()
})
expanded.toggle()
}
此示例的完整代码可在我的 GitHub 存储库中找到:ScrollAnimationExample
【问题讨论】:
-
您使用
UITextView而不是UILabel是否有原因?而且,您的目标是 iOS 13+ 或更早版本吗? -
嗨@DonMag,谢谢你的回答。
UITextView没有理由。我们也可以使用多行UILabel。我们目前的目标是 iOS 11.2+,但正在考虑转到 iOS 13+。
标签: uiscrollview autolayout uikit uitextview