我在Xcode 8中使用了一个应用程序,在将它导入Xcode 9之后,autolayout就失败了。多行UILabels只显示1行.多行UIlabels在UITableView中也显示了1行.我没有任何约束问题。
我用了这样的方法
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 100 当我在转换的项目中实现一个解决方案(如here所示)时,自动布局失败了。
但是如果我在Xcode 9中创建了一个新项目并实现了与上面的链接中给出的解决方案相同的解决方案,自动布局工作!
有人遇到过这样的问题吗?有没有一种方法可以修复我在转换项目中的自动布局而不重新做所有的工作?
编辑
似乎有人正面临着类似的问题,here。
编辑: 2017.10.18
一种可能的解决方案,有点骇客;here
发布于 2018-02-28 10:46:46
经过进一步的研究,我在下面的文章中找到了答案:https://stackoverflow.com/a/28545177/1179312
在升级到XCode9之前发生了什么,我确实在UILabel的扩展中重写了intrinsicContentSize。,我决定不使用它,但忘了把它从我的项目中删除。,然后升级到XCode 9,让我很困惑。
这导致了不可预测的行为。是我的错。删除该函数之前重写了intrinsicContentSize,修复了以下内容:
https://stackoverflow.com/questions/46781889
复制相似问题