Можно ли отключить анимацию для авторотации? Я хочу, чтобы он вращался, но я просто не хочу, чтобы анимация произошла (как мгновенный переключатель).iphone авторотация анимация
ответ
Просто добавьте следующий код для перезаписи стандартной анимации вращения:
- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:UIDeviceOrientationDidChangeNotification object:nil];
}
- (void)didRotate:(NSNotification *)notification {
orientation = [[UIDevice currentDevice] orientation];
if(orientation == UIDeviceOrientationUnknown || orientation == UIDeviceOrientationFaceDown || orientation == UIDeviceOrientationFaceUp){
orientation = UIDeviceOrientationPortrait;
}
[[UIApplication sharedApplication] setStatusBarOrientation:orientation animated:NO];
[self positionScreenElements];
}
Этот ответ работал отлично, но у меня были некоторые проблемы при фокусировке текстового поля. Если iPad лежал на столе, то клавиатура показывала половину экрана - очень странно. Проблема заключалась в том, что ориентация устройства также может быть неизвестной, лицевой стороной вверх или вниз, ни одна из которых не соответствует ориентации строки состояния. Проверка на эти состояния сделала это совершенным. Большое спасибо Нильс за спасение меня с этим решением :) –
+1 adam для вас вклад:] –
Что такое «ориентация»? – Morkrom
Если вам действительно нужно, просто использовать setAnimationsEnabled
из UIView
:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[UIView setAnimationsEnabled:NO]; // disable animations temporarily
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[UIView setAnimationsEnabled:YES]; // rotation finished, re-enable them
}
Это делает трюк для меня. Конечно, это не рекомендуется делать, если у вас нет веских оснований для этого.
это здорово !, спасибо! –
@Nils Munch, к сожалению, это не работает должным образом, setStatusBarOrientation ожидает UIInterfaceOrientation
не UIDeviceOrientation
и отливка - это плохая практика. Исправьте меня, если я ошибаюсь
Анимация - это красота! –
Ну, я настроил его так, чтобы изображение BG изменялось либо в горизонтальном, либо в вертикальном вариантах изображения в зависимости от ориентации, и анимация вращения вызывала сбой, когда изображение менялось, но я играл с ним и заставлял его смотреть все равно. – Brodie