Есть ли способ пропустить анимацию поворота от shouldAutorotateToInterfaceOrientation? - PullRequest
4 голосов
/ 13 июля 2010

Я хотел бы разрешить поворот ориентации в соответствии с вызовом shouldAutorotateToInterfaceOrientation моего контроллера представления. Однако я хотел бы, чтобы это было сделано немедленно и пропускало вращающуюся анимацию (ту, которая приводит к тому, что углы показывают черную вращающуюся анимацию, когда весь вид вращается.

Кто-нибудь знает, есть ли способ указать, что вы хотите, чтобы это произошло немедленно (без анимации)?

Ответы [ 2 ]

2 голосов
/ 13 июля 2010

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

 - (void)viewDidLoad {
 [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
             name:UIDeviceOrientationDidChangeNotification object:nil]; 
//Whenever the device orientation changes, orientationChanged will be called

}


- (void)orientationChanged:(NSNotification *)notification
{
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
//Based upon which orientation the device is in, update your View rotations.
//A simple view.transform = CGAffineTransformMakeRotation(whatever); will work well.
}

Полагаю, вам следует полностью удалить функцию shouldAutoRotateToInterfaceOrientation :.Вы также должны позвонить [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];, когда ваш вид выгружается.

0 голосов
/ 13 апреля 2012

Вращение вручную не требуется. Есть способ просто отключить вращение анимации .

Вот ответ, как это сделать: https://stackoverflow.com/a/6589568/894671

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