У меня очень странная проблема.Я добавил ориентацию в свое приложение для пейзажа и портрета без особых проблем, и это работает.Однако я заметил что-то странное.Когда я держу свой iPad в горизонтальном положении, то есть параллельно полу, вид в моем окне смещается так, как я не определял, и он выглядит не очень хорошо, естественно.Он переходит в промежуточное состояние, которого я не хочу (я не знаю, как объяснить это иначе).Кто-нибудь испытывал такую же проблему?И каково решение этой проблемы?
Для информации: я использовал наблюдателя на изменение ориентации.Я думаю, что именно здесь возникла проблема:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
Я также использовал этот код, но у меня не было проблем с ним раньше:
-(void)willRotateToInterfaceOrientation:
(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation
duration:duration];
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
self.view=landscapeView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(90));
self.view.bounds=CGRectMake(0.0,0.0,1024.0,748.0);
} else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
self.view=landscapeView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(-90));
self.view.bounds=CGRectMake(0.0,0.0,1024.0,748.0);
} else if (toInterfaceOrientation == UIInterfaceOrientationPortrait){
self.view=portraitView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(0));
self.view.bounds=CGRectMake(0.0,0.0,768.0,1004.0);
} else {
self.view=portraitView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(180));
self.view.bounds=CGRectMake(0.0,0.0,768.0,1004.0);
}
}
Спасибо!