我在UILabel
内有一个UIStackView
,并且堆栈视图在另一个UIScrollView
内,我正在使用自动布局。标签具有单行(即numberOfLines
等于1),在某些情况下,我需要使用扩展它的动画将其设置为多行(即numberOfLines
等于0)。>
func expand() {
label.numberOfLines = 0
}
当我单击展开时:
messageView.expand()
UIView.animate(withDuration: 0.3) {
self.layoutIfNeeded()
}
但是,当它展开时,标签的框架不会更新,我必须滚动(滚动视图)以使其完全可见。怎么了?
谢谢!
答案 0 :(得分:3)
答案 1 :(得分:0)
UILabel
的动画在UIView.animate(withDuration:)
内无法执行
这应该起作用:
UIView.transition(with: label, duration: 0.5, options: .transitionCrossDissolve, animations: {
self.label.numberOfLines = 0
})
您可以尝试使用选项和执行块。