2010-01-14 71 views
0

我在橫向模式下開發的iphone應用程序嚴重徘徊。我把它放在肖像中作比較,它在這個方向上看起來更順暢。我沒有做我認爲是過程密集型的東西:一個地圖視圖,一些按鈕,一些標籤和一些石英圖,但是一些基本的石英動畫真的嚴重減慢。iphone風景模式慢

有沒有人知道如果景觀模式比肖像,只是非常殘疾和/或如果是的話,如果有更好的方式來創建一個景觀應用程序?我只是簡單地使用一個轉換了90度的根旋轉視圖,並將所有的子視圖附加到它上面。

謝謝。

+0

您可以運行儀器並使用採樣器儀器查看時間花在哪裏?分析代碼是找出事情發展緩慢的最佳方法。 – lucius 2010-01-14 08:25:34

回答

2

當涉及到渲染性能時,橫向和縱向取向之間應該沒有真正的區別。你是否正在使用變換將主視圖旋轉90度?從iPhone OS 2.1開始,我相信,您不再需要手動將變換應用到主視圖以使其從橫向開始。我不得不這樣做,以迫使橫向是把我的應用程序委託中此委託方法:

- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration; 
{ 
    // This prevents the view from autorotating to portrait in the simulator 
    if ((newStatusBarOrientation == UIInterfaceOrientationPortrait) || (newStatusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)) 
     [application setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO]; 
} 

,並在我的根視圖控制器以下:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight)); 
} 
+0

我很想嘗試這個,但有一個問題。我不使用接口構建器,所以沒有根視圖控制器,至少不是我所知道的。我是否應該特別添加第二個片段?我有一個應用程序委託,但沒有根視圖控制器。 – Joey 2010-01-14 20:21:27

+0

您對應用程序窗口進行子視圖的第一種觀點是什麼?這個控制器應該是我在這裏提到的根視圖控制器。 – 2010-01-14 21:46:23

+0

據我所知,第一個子視圖沒有控制器,或者我感到困惑?如果它肯定有一個,有沒有辦法從視圖中引用它的控制器? 是否所有視圖都以某種方式絕對路由回父控制器,或者,如果沒有,是否有簡單的方法將視圖指定爲視圖控制器的視圖,只需分配一個視圖並將視圖設置爲viewController.view,或者該控制器需要進一步掛鉤到應用程序? – Joey 2010-01-14 22:28:21

1

也許你做了一些分裂,導致非整數像素位置(如0.76)。當我有非整數像素位置時,我遇到了一些性能問題。 (雖然我不完全確定這些是連接的,但也許它可以幫助你)

0

感謝您對您的各種建議和幫助,每個人。我試過Brad建議設置視圖控制器的自動旋轉設置,它工作得非常好。我認爲這是造成經濟放緩的一個重要因素。