iOS10 中的布局问题
Layout issues in iOS10
我会尽量保持简短。
我使用 viewDidLayoutSubviews 来(主要)将圆角半径应用于几个 UIViewController 中的某些视图。
在 layoutSubviews 中也为自定义 UIViews.
做同样的事情
安装 Xcode 8 Beta 后,这不再像预期的那样运行。
有时它有效,其他人延迟工作,其他人仍然有效,根本没有...
调试时立即发生的一件事是,在第一次调用 viewDidLayoutSubviews 时,相关视图的边界为零。
第二次调用时,边界是正确的;问题是,正如我所说,第二次调用要么有(可见的)延迟,要么根本不会发生。
有什么指点吗?
提前谢谢大家。
最好的,
雷纳托.
回答我自己的问题,以防万一有人遇到同样的问题...
据我所知,在 iOS 10 中,您不能假设调用是在 layoutSubviews、viewDidLayoutSubviews等会在主线程上调用
所以答案似乎只是将 UI 调用包装在调度块上(新 iOS 10 语法):
DispatchQueue.main.async {
// Do UI stuff here...
}
希望对某人有所帮助:)
此致,
雷纳托。
我会尽量保持简短。 我使用 viewDidLayoutSubviews 来(主要)将圆角半径应用于几个 UIViewController 中的某些视图。 在 layoutSubviews 中也为自定义 UIViews.
做同样的事情安装 Xcode 8 Beta 后,这不再像预期的那样运行。 有时它有效,其他人延迟工作,其他人仍然有效,根本没有...
调试时立即发生的一件事是,在第一次调用 viewDidLayoutSubviews 时,相关视图的边界为零。 第二次调用时,边界是正确的;问题是,正如我所说,第二次调用要么有(可见的)延迟,要么根本不会发生。
有什么指点吗? 提前谢谢大家。
最好的, 雷纳托.
回答我自己的问题,以防万一有人遇到同样的问题...
据我所知,在 iOS 10 中,您不能假设调用是在 layoutSubviews、viewDidLayoutSubviews等会在主线程上调用
所以答案似乎只是将 UI 调用包装在调度块上(新 iOS 10 语法):
DispatchQueue.main.async {
// Do UI stuff here...
}
希望对某人有所帮助:)
此致,
雷纳托。