与iOS 10相比,iOS 11是否改变了内容拥抱和抗压缩API?这是我在iOS 10上运行的设置:
标签1标题很短,标签2创建额外的宽度以填充空间。
[[标签1] [标签2 -------------]]
标签1标题很长,标签2收缩(但不截断!)为标签1腾出空间。
[[很长的标签t ...] [标签2]]
我用于此的唯一限制是领先和尾随。没有宽度,没有什么花哨的。它的工作方式是标签1的内容拥抱优先级为251,与标签2的250相比。这给标签2带来了额外的宽度以填充空间"能力。
然后,与标签2的751相比,标签1的抗压缩优先级为750.这有助于确保标签2在缩小时不会被截断。
在iOS 11上,这停止了工作。有时标签1会过早截断:
[[标签标题...] [标签2 -------]]
我假设我有一些错误,我首先要做拥抱和压缩。否则,iOS 11可能改变了一些东西?或者最后一个选项,iOS 11引入了一个错误。
答案 0 :(得分:0)
是的,我观察过同样的事情。我有UITableViewCell,其中有2个标签,并且在iOS 11更新后它以错误的方式截断它。我通过在cellForRowAtIndexPath
方法的末尾添加以下代码行来解决它。
cell?.layoutIfNeeded();
这条线就像一个魅力,因为它再次更新你的细胞的约束。