iOS 11上的内容拥抱和压缩阻力

时间:2017-10-25 22:42:09

标签: ios swift autolayout

与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引入了一个错误。

1 个答案:

答案 0 :(得分:0)

是的,我观察过同样的事情。我有UITableViewCell,其中有2个标签,并且在iOS 11更新后它以错误的方式截断它。我通过在cellForRowAtIndexPath方法的末尾添加以下代码行来解决它。

cell?.layoutIfNeeded();

这条线就像一个魅力,因为它再次更新你的细胞的约束。