Я столкнулся с тем, что я считаю странным поведением. Было бы хорошо, если бы кто-нибудь мог это прояснить.
В viewDidLoad изначально я печатаю высоту и ширину границ UIView, например,
-(void) viewDidLoad
{
NSLog(@"WxH = %fx%f", self.view.bounds.size.width,self.view.bounds.size.height);
}
который печатает: WxH = 320.000000x548.000000
Теперь, скажем, я поворачиваю контроллер View на Landscape, а затем вернусь к портрету и напечатаю ту же высоту и ширину. Вот так:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)x
duration:(NSTimeInterval)duration
{
// If the orientation is rotating to Portrait mode...
if (UIInterfaceOrientationIsPortrait(x))
{
NSLog(@"WxH = %fx%f", self.view.bounds.size.width,self.view.bounds.size.height);
}
else // If the orientation is rotating to Landscape mode
{
}
}
После этого каждый раз, когда я поворачиваюсь, этот метод печатает WxH = 320.000000x460.000000
(даже если я в режиме портрета, как я был в начале, когда он печатал 548)
Почему высота изменилась до 460? (Затем он остается таким же все время)