Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UILabel numberOfLines随动画变化_Ios_Autolayout_Uikit_Uilabel - Fatal编程技术网

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请使用注释获得类似建议。答案应该为这个问题提供一个有效的解决方案。在我的例子中,这个问题是因为约束。