iPhone имеет блокировку ориентации только для портрета. Поэтому я добавил кнопку блокировки ориентации ландшафта в свой пользовательский интерфейс, который устанавливает переменную landscape_orientation_locked
в YES
или NO
. Тогда в shouldAutorotateToInterfaceOrientation:
я в принципе сделать следующее:Программный замок для ориентации на iPhone iPhone
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if (landscape_orientation_locked)
return (UIInterfaceOrientationIsLandscape(interfaceOrientation));
return YES;
}
Это работает отлично, за исключением одного случая. Когда я поворачиваю iPhone в альбомную ориентацию, переключая кнопку блокировки ориентации, поворачивайте iPhone в портретную ориентацию и снова нажмите кнопку. Ориентация интерфейса не изменится с ландшафта на портрет. IPhone должен быть превращен в ландшафтную, а затем портретную ориентацию, чтобы вызвать вращение интерфейса.
Итак, мой вопрос: могу ли я как-то «заставить» iPhone пересмотреть свою текущую ориентацию?
Я читал о том, что трюк, а также. К сожалению, это не работает (больше?). – Max