Раскадровка: Как разрешить Xcode автоматически обновлять фреймы при изменении ограничений макета?
Я видел видео WWDC 2014 (что нового в Interface Builder), где ведущий использует Storyboard и изменяет высоту прототипа ячейки таблицы в контроллере табличного представления (около 7 м 30). Я вижу все подпункты этого размера ячейки, когда он перетаскивает указатель высоты на ячейку. Это замечательно, потому что теперь вы можете увидеть, как ваши ограничения макета ведут себя в разных сценариях очень быстро.
Он не объясняет, как он это делает. Поскольку, когда я перетаскиваю высотный дескриптор прототипа ячейки таблицы, кадры всех моих подпрограмм не обновляются. Они обновляются только при выборе из меню: Редактоp > Устранение проблем с автоматическим макетированием > Обновление фреймов (все представления в контроллере табличного представления)
Есть ли настройка Xcode в любом месте, которое переключает живые обновления фреймов представления, которые я вижу в Storyboard, подчиняясь ограничениям макета?
Ответы
Ответ 1
В теории вы должны включить "Потомки" в всплывающем меню "Изменение размера" (нижний правый угол редактора раскадровки).
На практике это сломано в вашем случае. У меня такая же проблема. Вы можете сообщить об ошибке в http://bugreport.apple.com/.
Возможно, он работает лучше в Йосемити. Я все еще бегу Маверикс.
Ответ 2
Обновление: на XCode 8 Beta 5 Я тестировал и обнаружил XIB, где мне нужно было вручную обновлять. Теперь Frame автоматически обновляется, когда я изменяю размер представления свободной формы.
В XCode 7.3.1:
Это не решение, но я нахожу хороший компромисс.
Перейдите к XCode → Настройки → Ключи для клавиш → Поиск "Обновить фреймы". Удалите существующие ярлыки для первого элемента (который, похоже, не работает) и замените ярлык на CTRL + OPTION + COMMAND + P для второго элемента. Ярлык - пример, вы можете добавить любой ярлык, который хотите, который не конфликтует с существующими привязками).
Теперь каждый раз при изменении размера вы можете быстро использовать ярлык для обновления фрейма.
Ответ 3
Правильный ответ отмечается, что это ошибка, но может быть, что Interface Builder не может понять ваши ограничения для автоматического обновления. Я использую Xcode 6.2 на Yosemite. Я думал, что у меня такая же проблема, но по мере того, как мои ограничения стали более полными, Interface Builder обновляет их, когда я иду.