我会尽量保持这一点。 我正在使用 viewDidLayoutSubviews (主要)将角半径应用于几个 UIViewController 中的某些视图。 也在 layoutSubviews 中为自定义 UIView 执行相同的操作。
安装 Xcode 8 Beta 后,此操作可以预测停止。 有时候它有效,有些则延迟工作,有些仍然有效,而不是......
调试时立即做的一件事就是在第一次调用 viewDidLayoutSubviews 时,对于有问题的视图,边界为零。 在第二次通话时,界限是正确的;就像我说的那样,第二个电话要么有(可见)延迟,要么根本没有发生。
任何指针? 提前谢谢大家。
最佳, 雷纳托。
答案 0 :(得分:1)
回答我自己的问题,万一有人碰到同样的问题......
据我所知,在 iOS 10 中,您无法承担在 layoutSubviews 上执行的调用, viewDidLayoutSubviews 等将会被调用主线。
所以答案似乎只是简单地将UI调用包装在一个调度块上(新的 iOS 10 sintax):
DispatchQueue.main.async {
// Do UI stuff here...
}
希望它对某人有帮助:))
致以最诚挚的问候,
雷纳托。