Сообщается, что размеры представления переключаются

Итак, я поставил:

NSLog(@"%f",self.superview.frame.size.height);

внутри моего подкласса UIView. Когда этот код запускается, он сообщает о высоте 1024. Однако iPad находится в ландшафтном режиме. Когда я запускаю тот же код (но вместо этого с self.view.frame...) из контроллера представления, я получаю ожидаемый результат, высоту 748. Я уверен, что это не размеры представления, потому что я установил фон (супервида) на красный, и он, безусловно, шире, чем в высоту.

Что я делаю неправильно?

любая помощь очень ценится, спасибо


person Tom H    schedule 17.07.2011    source источник


Ответы (2)


Вы можете легко получить правильный прямоугольник, независимо от того, что: [self.view convertRect:self.superview.frame fromView:nil];

Он преобразует его для текущего состояния.

person Philippe Sabourin    schedule 16.09.2011

Происхождение и геометрия экрана iPad остаются неизменными, независимо от ориентации. Таким образом, в ландшафтном режиме «высота» по-прежнему равна 1024, как и в портретном режиме.

person Firoze Lafeer    schedule 17.07.2011