2010-01-14 106 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建议设置视图控制器的自动旋转设置,它工作得非常好。我认为这是造成经济放缓的一个重要因素。