【问题标题】:Delayed Layout of Buttons (Swift 3)按钮的延迟布局(Swift 3)
【发布时间】:2016-12-21 16:38:40
【问题描述】:

我有一个带有几个按钮的 ViewController,它还有一个添加了子层的子视图。它的大小等于 ViewController 的主视图的大小。

我在viewDidLoad() 上使用了self.view.layoutIfNeeded(),还使用DispatchQueue.main.async{...} 将子层调度到主调度。当子图层立即被绘制时,按钮需要 10-15 秒才能出现。

什么给了?

【问题讨论】:

    标签: swift autolayout swift3


    【解决方案1】:

    我在viewDidLoad()上使用了self.view.layoutIfNeeded()

    好吧,不要。该视图甚至还没有在界面中。布局将在适当的时候进行;不要试图通过短路来制造麻烦。

    并且还使用 DispatchQueue.main.async{...} 将子层分派到主分派。当子图层立即被绘制时,按钮需要 10-15 秒才能出现。

    尽管您对主线程说了什么,但这种延迟总是由线程问题引起的:您正试图与主线程之外的接口通信,或者进行某种同步网络。你没有显示任何代码,所以不能再多说了,但线程问题肯定是原因。

    【讨论】:

    • 感谢您到目前为止为我指明了正确的方向。清理完这个半烂摊子后,我会发布一些代码。
    猜你喜欢
    • 2017-01-12
    • 2017-07-05
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多