2016-07-27 72 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