Авторазмер корневого представления при повороте устройства - PullRequest
4 голосов
/ 25 ноября 2011

Я занимаюсь разработкой программы для чтения PDF. Я столкнулся с проблемой при вращении симулятора. То, что я делаю, - когда представление загружается ViewController (то есть в loadView), я создаю UIScrollView, который содержит UIImageView и UIView того же размера (то есть размер PDF страница). Он отлично работает в портретном режиме. Но когда я поворачиваю симулятор в ландшафтном режиме, вид не изменяется автоматически в зависимости от устройства. Я пытался

self.view.autoresizesSubviews = YES;
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

в viewDidLoad() ViewController

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

Ответы [ 2 ]

0 голосов
/ 05 июня 2012

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

Так вы пробовали это?

В вашем контроллере представления добавьте следующее:

// Set the View Controller to fit the whole screen. -(BOOL)wantsFullScreenLayout{ return YES; }

Внутри метода loadView измените ваш scrollView на:

// set the initial size of your scrollView object.
[scrollView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

// Set the auto resizing attributes.
[scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

В дополнение к этому вам может потребоваться установить поля авторазмера маски для UIView или UIImageView в зависимости от типа макета, который требуется при повороте устройства.

0 голосов
/ 25 мая 2012

Это поздний ответ ... Это может помочь, если вы еще не исправили это.

Когда вы создаете какое-либо приложение в режиме portraid и хотите, чтобы оно поворачивалось (изменяло размеры) в альбомный режим, вы должны сделать это в файле User Interface Builder или в файле .xib (или в Storyboard iPad или iPhone).

Итак, чтобы проверить или проверить вращение в симуляторе:

  1. Перейдите к файлу «ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС-СТРОИТЕЛЬ» или «.XIB» (или «Раскадровка iPad или iPhone»).

  2. Затем выберите «UIImageView» и перейдите к «ПОКАЗАТЬ ИНСПЕКТОР АТРИБУСОВ».

  3. На четвертой вкладке (Инспектор атрибутов) установите режим «Подгонка по формату», а на третьей вкладке (Инспектор размеров) и на пятой вкладке (Инспектор размеров) установите следующие атрибуты автоматического изменения размера:

Установите стрелки во всех направлениях. К сожалению не могу загрузить изображение.

  1. Сделайте то же самое для "UIView" (3).

  2. Прежде чем двигаться дальше, вы можете дважды проверить, правильно ли вы получили все атрибуты авторазмера, выбрав контроллер представления подробностей и изменив ориентацию с Портретной на Пейзаж: К сожалению, пока не удается загрузить изображение ...

  3. Вы можете проверить или изменить на «Пейзаж или Портрет» в верхней правой части «Имитированные метрики», выберите в разделе «Размер» «Ориентация».

Если что-то не так, не волнуйтесь: просто измените его на Портрет и дважды проверьте настройки.

...