медленный ландшафтный режим iphone - PullRequest
0 голосов
/ 14 января 2010

Приложение для iphone, которое я разрабатываю в ландшафтном режиме, серьезно пыхтит. Я поместил его в портрет для сравнения, и в этой ориентации он выглядит более плавным. Я не делаю то, что я считаю интенсивным процессом: представление карты, некоторые кнопки, некоторые надписи и некоторые кварцевые рисунки, но некоторая базовая кварцевая анимация серьезно сильно замедляется.

Кто-нибудь знает, действительно ли ландшафтный режим просто ужасно затруднен по сравнению с портретным, и / или если да, есть ли лучшие способы создания ландшафтного приложения? Я просто использую повернутое на угол представление, преобразованное на 90 градусов, и присоединяю к нему все свои подвиды.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 14 января 2010

Не должно быть реальной разницы между альбомной и портретной ориентацией, когда речь идет о производительности рендеринга. Используете ли вы преобразование для поворота вашего основного вида на 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));
}
1 голос
/ 14 января 2010

Возможно, вы делаете некоторые деления, которые приводят к нецелочисленным позициям пикселей (например, 0,76). У меня были некоторые проблемы с производительностью, когда у меня были нецелые позиции пикселей. (Хотя я не совсем уверен, что они были связаны. Но, возможно, это поможет вам)

0 голосов
/ 15 января 2010

Спасибо за все ваши предложения и помощь всем. Я попробовал предложение Брэда о настройке автоповорота контроллера вида, и это сработало очень хорошо. Я думаю, что это было огромным фактором, способствующим замедлению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...