整个 Storyboard 都启用了 AutoLayout。
当我将日志放入viewDidLayoutSubviews()时,我可以看到它被反复调用,并且永不停止。
我在视图控制器中没有任何自动布局红旗。
这可能是什么原因造成的?调试此问题的最佳方法是什么?...找出哪个视图正在苦苦挣扎?
更新
原来是一个 UILabel 制造了这个麻烦。即使它具有所有 4 个约束(x、y、宽度、高度)它似乎正在调用树上的重新布局......
整个 Storyboard 都启用了 AutoLayout。
当我将日志放入viewDidLayoutSubviews()时,我可以看到它被反复调用,并且永不停止。
我在视图控制器中没有任何自动布局红旗。
这可能是什么原因造成的?调试此问题的最佳方法是什么?...找出哪个视图正在苦苦挣扎?
原来是一个 UILabel 制造了这个麻烦。即使它具有所有 4 个约束(x、y、宽度、高度)它似乎正在调用树上的重新布局......
我最好的猜测是它与故事板中子视图的布局方式有关。也许是观点的一些错误接线。如果没有更多关于视图和视图控制器布局的上下文,很难帮助您解决这个问题。你有一些可以分享的代码示例或故事板吗?
您可以尝试在 Xcode 中使用View Debugger工具。除了尝试查看我的视图层次结构之外,我自己还没有使用它进行调试。首先在viewDidLayoutSubviews中放置一个断点,然后观察层次结构在每次调用时如何变化。https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/debugging_with_xcode/chapters/special_debugging_workflows.html
如果你有一些循环在某些子视图中一遍又一遍地更改视图属性。检查它并找出它。停下来。