Изменение размера контроллера представления в соответствии с контроллером вкладок - PullRequest
0 голосов
/ 09 января 2012

В моем приложении я разработал один мастер, в котором я предоставляю пользователю возможность настраивать свои данные по одному.После завершения всех шагов, пользователь будет перенаправлен на экран, где TabBar появится на рисунке.

Проблема здесь в том, что пользователь может получить доступ к тем же контроллерам представления с помощью мастера (без контроллеров TabBar) и обычногопоток (который с контроллером вкладок).В мастере я использую контроллер вида размером 320х480 и такой же в обычном потоке.Но всякий раз, когда я загружаю любой контроллер представления, используя TabBar, 44-пиксельное представление снизу скрывается за TabBar.

Я знаю, что могу вручную установить размер представления, определяя, присутствует TabBar или нет, но здесь, вВ этом случае количество контроллеров представления больше, и он уже имеет размер 320x480.

Я пробовал все методы, приведенные в документации Apple, но ни один из них не работает для меня.

Ниже приведеныметоды, которые я попробовал, вместе с некоторыми настройками xib.

[self setWantsFullScreenLayout:YES];
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight;
[self.view setAutoresizesSubviews:YES];
[self.navigationController.view setNeedsLayout];

Есть ли способ установить высоту контроллера представления в зависимости от того, присутствует этот TabBar или нет?

Ответы [ 3 ]

2 голосов
/ 27 августа 2014

В моем случае (Строка состояния / Панель навигации / Скрытая панель вкладок) это сработало

//Add this in your ViewController
self.edgesForExtendedLayout = UIRectEdgeBottom;
self.extendedLayoutIncludesOpaqueBars = YES;

Однако ответ Барри будет лучше, если вы используете раскадровку, но я не смог для этого ВК.Пробовал для iOs7 и iOs 8.

0 голосов
/ 06 августа 2014

Если вы используете раскадровки, выберите каждую вкладку VC и снимите флажок для View Controller> Extend Edges> Under Bottom Bars.

0 голосов
/ 12 марта 2012

Я не смог найти хороший ответ для этого, поэтому я добавил BOOL, hasTabBar.Я устанавливаю значение true или false в зависимости от того, где я создаю свое представление, и использую его для расчета макетов.

frame.size.height -= (hasTabBar*50); // works nicely.
...