Как повернуть экран в ландшафт? - PullRequest
4 голосов
/ 17 февраля 2010

Как повернуть экран в альбомную ориентацию?

Можете ли вы предложить простой код?

Ответы [ 5 ]

2 голосов
/ 17 февраля 2010

Это сложнее, чем вы думаете! После большого обсуждения этот пост в блоге (со ссылкой на дальнейшее обсуждение позже) содержит самый чистый ответ:

Как переключиться в ландшафтный режим по желанию

2 голосов
/ 17 февраля 2010

в uiViewController у вас должен быть метод

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
 return YES;
}

для автоматического поворота.

Если в вашем приложении есть uiTabBarController, вам нужно создать подкласс UITabBarController и добавить к нему также метод. Что-то вроде этого:

@interface MyTabBarController : UITabBarController {

}

@end

#import "MyTabBarController.h"

@implementation MyTabBarController

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

@end
0 голосов
/ 16 февраля 2011

Просто внедрите это в свой файл контроллера представления, и все готово.

- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation
{
     return YES;
}
0 голосов
/ 10 февраля 2011

Спасибо, Сорина. Необходимость UITabBarController shouldAutorotateToInterfaceOrientation: доставила мне всевозможные разочарования, поскольку я не подклассифицировал класс по какой-либо причине (т. Е. Функциональность по умолчанию была приемлемой для моего приложения).

В качестве решения с меньшим весом, чем подкласс, я использовал категорию (может быть, все то же самое, но кажется, что вес меньше).

@interface UITabBarController (WithRotation)
@end

@implementation UITabBarController (WithRotation)
- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {
    return YES;
}
@end

p.s. Если вы хотите поддерживать только некоторые ориентации, протестируйте интерфейсOrientation и возвращайте YES только в соответствующих ориентациях.

p.p.s. Для чего нужен info.plist Supported interface orientations? Единственное, что кажется важным, это то, что возвращается от shouldAutorotateToInterfaceOrientation:

0 голосов
/ 17 февраля 2010

В этом руководстве описано, как включить автоматическое вращение в приложении: http://developer.apple.com/iphone/library/codinghowtos/UserExperience/index.html#GENERAL-HANDLE_AUTOROTATION_OF_MY_USER_INTERFACE

В этом руководстве описано, как запустить приложение в альбомном режиме: http://developer.apple.com/iphone/library/codinghowtos/UserExperience/index.html#GENERAL-START_MY_APPLICATION_IN_LANDSCAPE_MODE

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