2016-07-27 57 views
2

我会尽量保持这个简短。 我正在使用viewDidLayoutSubviews(主要)将几何视角的角部半径应用于几个UIViewController s。 同样在layoutSubviews定制UIView s。iOS10中的布局问题

安装Xcode 8 Beta后,此操作停止表现可预测。 它的工作原理有些时候,人的作品有延迟,其他的还是,一点都没有......

的一两件事,是直接在调试是对viewDidLayoutSubviews第一个呼叫,边界都是在零意见题。 第二次通话时,边界是正确的;正如我所说的,事情是,第二个电话要么有(可见的)延迟,要么根本不会发生。

任何指针? 谢谢大家提前。

最好, 雷纳托。

回答

1

回答我的问题,以防万一有人碰到同样的问题...

据我所知,在iOS的10你不能假设在layoutSubviewsviewDidLayoutSubviews进行通话等将在主线程中调用。

因此,答案似乎是简单地包装UI调度块调用(新iOS的10 sintax):

DispatchQueue.main.async { 
     // Do UI stuff here... 
     } 

希望它是有用的人:)

最好的问候,

Renato。

+0

这听起来像一个错误,你应该提交一个雷达 – jrturton

+0

这对我有帮助,但显然我们不应该被迫这样做。你提交了雷达吗? – damjandd

+0

另外,如果您将代码移动到“drawRect”,即使没有调度代码,它也可以工作。 – damjandd