我有我的iPad應用程序的性能這個問題..iPad性能問題
爲了開發,我使用MonoDevelop,它負責照顧垃圾收集。我的問題仍然是相當普遍的。
好的,我用5個NavigationControllers TabBarController。在導航控制器內部有一些控制器,其視圖是TableView或ScrollViews。下一個孩子總是隻是定期的看法。
我有幾個問題:
1)TableViews從不順利滾動。我有一些alpha透明度,但由於我在Photoshop中完成了圖形處理,而不是以編程方式進行,因此此透明度不應引起太多問題。表格中是否有少量或多少結果並不重要。另一方面,我有ScrollView,它具有相同的用途,即具有不同佈局的表格和按鈕也具有Photoshop生成的透明度。它完美的作品。
對於我申請DequeueReusableCell()
的表,它工作正常(我發現滾動後內存使用量沒有增加)。那麼爲什麼桌子滾動得這麼生澀呢?
2)我的應用程序支持旋轉。當我滾動表或scrollView,同時傾斜設備一點,我可能得到1或2 FPS。什麼是實施輪換的最佳方式?據我所知,必須在NavigationController鏈中的所有控制器中覆蓋ShouldAutorotateToInterfaceOrientation
。另外,我需要在View中添加觀察者,我想要進行一些更改。我是否必須在所有視圖中使用BeginGeneratingDeviceOrientationNotifications()
,還是足以在Main.cs中執行此操作?也許這會減慢它?
3)一段時間後,應用程序開始獲取內存警告,然後最終崩潰。我試着用Instruments讀取日誌並運行應用程序,但無法找到崩潰的原因。
4)從NavigationController棧彈出的視圖究竟發生了什麼?我無法重複使用它。但Monotouch(或我)不能正確處理它嗎?
我有幾乎相同的iPhone應用程序,而不支持從不崩潰的旋轉。我認爲我在這個輪換中做了一些錯誤,但我不確定是什麼。
任何幫助將不勝感激。所以,提前謝謝你。
Regards
很好的答案,但4)不正確。 UIViews一旦不再是視圖層次結構的一部分(因爲視圖保留了它們的子視圖),並且沒有其他人保留它們。他們根本不關心記憶警告。另一方面查看_controllers_ _can_在低內存條件下卸載它們的視圖,如果它當前不可見。這適用於在導航控制器中當前顯示的視圖控制器「下方」,但是當您從堆棧彈出視圖控制器時,它應該立即釋放。 – omz
Eduardo,omz,非常感謝您的幫助。 我會嘗試刪除alpha並查看它是否改進。 omz,謝謝你清理視圖保留。但是,如果我公開一些子視圖或將其作爲參數傳遞,會發生什麼?如果我手動處理它,我不會保留它並指向什麼?或者在自動處置的情況下,該對象仍然會有另一個指針? –
@omz你說得對UIViews馬上被釋放。從問題(從navviewcontroller彈出的視圖會發生什麼),我認爲它們與UIViewController關聯。 –