我試圖顯示活動指標,同時沉重的用戶界面更新。(iphone)如何在用戶界面更新過程中顯示活動指示燈?
我最初的失敗嘗試是在廠景
- 顯示活動指示器
- pushViewController(此的viewController的創建視圖需要很長的時間)時,廠景的viewDidDisappear(當pushViewController的推動動漫 發生
- ),隱藏活動指示器
即使我在pushViewController之前調用了「顯示活動指示符」,問題仍然存在,因爲在創建正在推送的viewController視圖時出現沉重的用戶界面,所以未顯示活動指示符。
我改變策略如下,它的工作原理,我不明白爲什麼。
- pushViewController
- 展示在的viewController的viewDidLoad中
- 做繁重的UI裝載在viewDidAppear和隱藏指示器
活動的指標我下的印象是,指標沒理由第一種方法顯示的原因是UI過程繁重。
請參考鏈接討論。 (iphone) showing activity indicator before heavy ui updating
如果隊列上的UI更新太多會導致UI更新延遲(指示符未顯示),爲什麼第二種方法有所作用?
我知道viewDidLoad只有在視圖被創建時纔會被調用。
當在屏幕上查看實際顯示出來(因此可以多次調用)
viewDidAppear被調用。但有這可以解釋爲什麼使用viewDidAppear的第二個辦法,我的情況下工作的根本區別?
是否有除所謂的主線程之外的UI更新線程? 或者主線程是UI更新線程?
謝謝
感謝您的建議,是的,我正在主線程中進行UI更新。我以爲viewWillAppear會被多次召喚出一次觀看。 ViewDidAppear被調用一次。爲什麼viewWill出現更好的選擇?我應該維護一個布爾變量不加載多個指標視圖,因爲viewWillAppear被多次調用? – eugene 2011-04-22 19:59:02
使用if語句來查看活動指示符是否具有動畫效果。如果不是,那麼動畫。您的活動指示器應該已經創建好了,如果它在筆尖中,它真的很有用。當您調用viewWillAppear(或viewDidAppear,如果更適合您的應用程序時),並且在UI完全加載時,將其設置爲可見和動畫,並在UI完全加載時,將活動指示器設置爲停止動畫和不可見。 – 2011-04-22 21:06:37