2016-12-21 69 views
0

我有一个ViewController有几个按钮,它也有一个子视图添加了一个子图层。它的大小等于ViewController主视图的大小。延迟的按钮布局(Swift 3)

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

什么给?

回答

1

我对viewDidLoad()

使用self.view.layoutIfNeeded()好了,不要。该视图甚至还没有在界面中。布局将在适当的时候进行;不要通过尝试缩短事情来造成麻烦。

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

不管你怎么说主线程,这种延迟总是由于线程问题引起的:你试图从接口脱离主线程,或者做某种同步网络。你没有显示任何代码,所以不能再说了,但是线程问题肯定是原因。

+0

感谢您指引我朝着正确的方向前进。在清理完这些半烂事后,我会稍微发布一些代码。 – simplexity