所以我试图构建一个小的扩展和折叠UILabel,就像你在下面看到的那样。下面还有一些文字。当你触摸标题时,它应该会显示出更多更少的文本。
我知道我可以将文本标签的行数设置为零,它将计算出显示整个文本所需的高度。我最初的方法是把行数从0改为3,然后我做了如下代码。。。

    `UIView.animate(withDuration: 0.4) {
        self.body.superview?.layoutIfNeeded()
    }`

这在技术上是可行的,但动画看起来很糟糕。因为没有更好的词,它看起来很不稳定,所以我想我可能不得不改变高度。所以,如果我不知道要多长时间,我怎么才能真正计算出所需的文本高度呢?我可以动画的高度从说65(一些任意数字)到它需要的任何高度。
ios - 如何展开和折叠UILabel?-LMLPHP

最佳答案

是的,你可以。您需要为高度设置一个约束并将其更改为常量(或者您可以设置2个约束并更改优先级,只需确保优先级不是0 a 1000,而是1和999。否则你不能改变它们)。在动画块之前完成并保持原样。
我有一个豆荚可以让你在故事板上做99%的事情
https://github.com/fer662/FMConstraintSwitch
将FMStateConstraintSwitch放在情节提要上,设置约束的出口,以及需要布局的父视图。然后从代码中更改FMStateConstraintSwitch上的状态。它可以为每个状态切换多个约束。

关于ios - 如何展开和折叠UILabel?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44330332/

10-16 23:31