Ios UILabel numberOfLines随动画变化
我在一个Ios UILabel numberOfLines随动画变化,ios,autolayout,uikit,uilabel,Ios,Autolayout,Uikit,Uilabel,我在一个UIStackView中有一个UILabel,而堆栈视图在另一个UIScrollView中,我正在使用自动布局。标签只有一行(即numberOfLines等于1),在少数情况下,我需要将其设置为多行(即numberOfLines等于0),并使用动画将其展开 func expand() { label.numberOfLines = 0 } 单击展开时: messageView.expand() UIView.animate(withDuration: 0.3) { se
UIStackView
中有一个UILabel
,而堆栈视图在另一个UIScrollView
中,我正在使用自动布局。标签只有一行(即numberOfLines
等于1),在少数情况下,我需要将其设置为多行(即numberOfLines
等于0),并使用动画将其展开
func expand() {
label.numberOfLines = 0
}
单击展开时:
messageView.expand()
UIView.animate(withDuration: 0.3) {
self.layoutIfNeeded()
}
但是,当它展开时,标签的框架没有更新,我必须滚动(滚动视图)使其完全可见。有什么不对劲吗
谢谢
UILabel
的动画在
UIView.animate(持续时间:)
这应该起作用:
UIView.transition(带:标签,持续时间:0.5,选项:。transitionCrossSolve,动画:{
self.label.numberOfLines=0
})
您可以尝试使用选项和执行块。通过“标签的框架未更新”,您的意思是它未展开?@KarthickRamesh是的,它未展开您可以为messageview添加自动布局约束吗?是的,我将标签文本从一个单词改为一个长句,并将其
numberOfLines
从1更改为0。@rocoo请使用注释获得类似建议。答案应该为这个问题提供一个有效的解决方案。在我的例子中,这个问题是因为约束。