Размер рамки iPad и смешение высоты в ландшафте

Я сделал то, что здесь сказал этот вопрос: Пейзажный режим ТОЛЬКО для iPhone или iPad

но view.frame.size.height по-прежнему составляет 1024, что является высотой, когда устройство находится в портрете, конечно, когда интерфейс вращает значения ширины и высоты?

(скажем, вы хотели разделить экран на 3 вида, для приложения, которое является как ландшафтным, так и портретным, и вы сделали view.frame.size.width/3, в ландшафте это было бы неверно, так как значение ширины фактически не будет ширины)

Я уверен, что на iPhone переключатель ширины и высоты, так почему бы и нет на iPad?


Это снова поразило меня. Я тоже не работаю с ником, может кто-нибудь, пожалуйста, дать приемлемый ответ? (т.е. тот, который не требует ручного переключения ширины и высоты)

Как только награда будет присуждена за ответ, я тогда заработаю еще одну награду за 250 и вручу ее одному человеку.

Ответ 1

Вы не указали, какой "просмотр" вы запрашиваете. Предполагая, что это верхнее представление подкатегории окна:

Вы должны запросить представление bounds не его frame. frame находится в координате, в которой определено представление (внешний мир), следовательно, может оставаться постоянным при вращении. bounds - это координата, используемая "внутри" вида и для его подзонов. Это изменяется при повороте.

Ответ 2

+ (int) currentWidth
{
 UIScreen *screen = [UIScreen mainScreen];
 int width = screen.currentMode.size.width;
 int height = screen.currentMode.size.height;
 return (UIDeviceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))? MAX (width, height) : MIN (width, height);
}

Я потратил некоторое время на то, чтобы проработать простейшее решение проблемы, и это было лучшее, что я мог придумать. Надеюсь, это поможет.