Одна вещь, которую вы можете сделать, это зарегистрироваться для уведомления об ориентации от NSNotificationCenter
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
...
- (void)orientationChanged:(NSNotification *)notification
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
// do things
}
Это, однако, неоптимально, так как iPad может лежать на столе, когда приложение запускается, и вы получитеUIDeviceOrientationUnknown
тогда.Здесь я сделал это ...
Я закончил тривиальной проверкой, подобной этой:
BOOL landscape = self.bounds.size.width > self.bounds.size.height;
if (landscape)
// landscape stuff
else
// portrait stuff
Но в моем случае вид изменил соотношение сторон при повороте.Если это тоже ваш случай, он должен работать нормально.