我会尽量简短的。我使用viewDidLayoutSubviews (主要是)对几个UIViewController_s中的一些视图应用拐角半径,在自定义_UIView_s的_layoutSubviews中也是这样做的。
在安装了Xcode 8 Beta之后,这种行为就停止了。有的时候起作用,有的拖延,还有一些,根本不起作用.
调试时立即发生的一件事是,在第一次调用viewDidLayoutSubviews时,有关视图的界限为零。在第二次呼叫中,界限是正确的;正如我所说的,第二个呼叫要么有(可见的)延迟,要么根本没有发生。
有什么指示吗?先谢谢大家。
最好,雷纳托。
发布于 2016-07-27 13:47:33
回答我自己的问题,以防有人碰到同样的问题.
据我所知,在iOS 10中,您不能假定对layoutSubviews、viewDidLayoutSubviews等执行的调用将在主线程上调用。
因此,答案似乎只是简单地将UI调用包装在一个分派块(新的iOS 10 sintax)上:
DispatchQueue.main.async {
// Do UI stuff here...
}希望对某人有帮助:)
诚挚的问候,
雷纳托。
https://stackoverflow.com/questions/38610733
复制相似问题