我有一个UIView
,里面包含UILabel
(没有其他内容)。我希望扩展和收缩视图,使其看起来好像标签正在扩展和收缩(通过按钮点击)。我在视图的高度上使用NSLayoutConstraint
:
func labelExpansion() {
if (isExpanded) {
myViewConstraint.constant = shortLabelHeight
} else {
myViewConstraint.constant = longLabelHeight
}
UIView.animate(withDuration: 2.2, animations: {
self.view.layoutIfNeeded()
})
}
问题是,标签中的文字看起来像是“跳”。当标签调整大小时,文本的位置会更改,直到动画完成,此时标签会正确地重绘到视图的顶部。
我也试过去除周围的视图,并单独调整标签的高度约束;同样有点跳跃。
如何在动画期间停止此跳转,并将标签顶部固定在视图顶部?
答案 0 :(得分:0)
在尝试了一些事情之后,我找到了一个简单的解决方案:将UILabel
的内容模式设置为“顶部”。
myLabel.contentMode = .top