2016-12-21 74 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