Ответ 1
Может показаться, что флажок "Использовать автоматическую компоновку" предназначен для определенной сцены, но, как вы обнаружили, это для всего "Документа по созданию интерфейса" (т.е. всей раскадровки). Таким образом, если вы не хотите использовать автоматическую компоновку на определенной сцене, вы застряли в нескольких альтернативах:
-
Вы можете поместить эту другую сцену в другую раскадровку или NIB и программно перейти к контроллеру и из контроллера просмотра. Вы теряете много преимуществ раскадровки, если вы это делаете (например, вы не можете просто создавать segues взад и вперед в IB, а скорее должны перейти на и с этой сцены программно).
-
Вы можете сохранить автоматическую компоновку, но затем для одного рассматриваемого контроллера, вы можете программно:
-
Удалите любые ограничения, которые IB может добавить (esp в Xcode 6);
-
Отрегулируйте
autoresizingMask
для различных элементов управления. Если вы хотите, чтобы вашautoresizingMask
был удостоен чести, вы можете включитьtranslatesAutoresizingMaskIntoConstraints
; и -
Если вы используете Xcode 6, вам может понадобиться отключить "Use Size Classes", чтобы вы правильно отложили сцену для целевого устройства.
Итак, выложив мой ярлык так, как я хотел в IB, я мог бы тогда:
- (void)viewDidLoad { [super viewDidLoad]; [self.view removeConstraints:self.view.constraints]; [self.label removeConstraints:self.label.constraints]; self.label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin; self.label.translatesAutoresizingMaskIntoConstraints = YES; }
Ясно, что то, что вы установили
autoresizingMask
, полностью зависит от вас (в этом примере я помещал метку в центр внимания на сцену, поэтому приведенное выше сохраняет ее в центре, когда я иду в пейзаж), но, надеюсь, это иллюстрирует идею. -
Откровенно говоря, учитывая, что вы ничего не можете сделать с автоизображением масок, которые вы не можете легко выразить в макете авто, я бы склонен придерживаться автоматической компоновки, и вы устраняете неловкость вышеупомянутых подходов.