В Xcode 6 beta 5, установка ограничений автоматического размещения в качестве заполнителей, кажется, не работает?

Всякий раз, когда вы не предоставляете ограничения автоматического размещения в Интерфейсном Разработчике, ограничения автоматически создаются для вас при запуске приложения.

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

Решением этой проблемы в Xcode 5 было то, что вы можете явно сказать, что ограничения автоматического макета установлены в Placeholder / удалены во время сборки, опция, которую вы можете установить в Инспекторе:

screenie

Но теперь в Xcode 6 beta 5 экран выглядит так:

screenie2

... и мне не понятно, что None делает.

Хуже всего то, что, как вы можете видеть из ошибки, кажется, что она не снимает никаких ограничений!

Что я могу сделать в этом случае?

2 ответа

У меня та же проблема. Ограничения заполнителя не работают вообще. Я удаляю NSIBPrototypingLayoutConstraint сейчас, прежде чем добавить свой собственный.

if ([self.view.constraints count] > 0) {
    [self.view removeConstraints:self.view.constraints];
}

Вот как я это исправил в редакторе раскадровки в XCode 6: сначала установите несколько номинальных ограничений Top/Bottom/Left/Right на подпредставление, которое вы хотите оставить неограниченным (я использовал "Интервал до ближайшего соседа" и снял флажок "Ограничить поля", затем щелкните по каждому из этих ограничений по отдельности, перейдите к Инспектору размера и отметьте Placeholder / Remove во время сборки. Это означает, что Auto Layout по-прежнему контролирует весь кончик, но конкретное подпредставление не имеет никаких ограничений. После этого я обнаружил, что I был в состоянии программно изменить размер и происхождение подпредставления, не получая предупреждающие сообщения "Невозможно одновременно удовлетворить ограничения: NSIBPrototypingLayoutConstraint", как я делал раньше.

Другие вопросы по тегам