Подтвердить что ты не робот

IOS AutoLayout против Springs & Struts

Привет, Дорогое сообщество!

Год назад я видел пару презентаций Apple WWDC о преимуществах Auto-Layout, но когда вы пробовали это в реальном мире, в этом случае, когда вы немного перемещаете некоторый элемент пользовательского интерфейса на раскадровке, и он разбивает половину ограничений исчезли все преимущества Auto-Layout.

До сих пор я использовал Springs и Struts довольно успешно, и в сочетании с KVO, наблюдающим "кадровый" путь для просмотра, обработал большую часть чередований поворотов изящно с помощью только пары строк кода.

Итак, теперь, когда выходит iOS 7, я задал вопрос - могу ли я успешно использовать пружины и распорки для приложений iOS 7, или я проиграю, сделав это? Изучение и освоение навыков использования автоматической компоновки в разных сценариях, вероятно, займет пару дней, поэтому я бы очень признателен за некоторые аргументированные советы.

Спасибо,
Dan


ПОСТАНОВИЛИ: Благодаря ответу "Макс" я начал копаться в автоматической компоновке; в то время как Null прав в своем ответе - вы действительно можете использовать Springs и Struts на iOS 7 без особых проблем, Auto-Layout является мощным.

По-видимому, в XCode 5 фиксируются следующие вещи:

чтобы удалить ограничение, которое вам действительно не нужно, чтобы выполнить древний шаманский "танец дождя". Вы удаляете его, а макет переходит в режим "предупреждения", указывая на проблемы, которые необходимо решить, чтобы выполнить автоматическую компоновку. когда вы перемещаете вещи - ваши ограничения не меняются; только рамка просмотра в изменениях IB когда кадр в IB фактически отличается от вычисленного с помощью фрейма ограничений компоновки, IB укажет кадр времени выполнения этого элемента с красной пунктирной линией. Наконец, это делается правильно. Спасибо, Apple. здесь ссылка на сессию WWDC'13, которая демонстрирует, как использовать все это в XCode 5. Для этого вам понадобится учетная запись разработчика Apple. https://developer.apple.com/wwdc/videos/index.php?id=406

Итак, мой выбор - Auto-Layout. Спасибо всем.

4b9b3361

Ответ 1

Авто макет - это будущее, а Springs and Struts - это прошлое. Если вы продолжаете использовать Springs и Struts, вы будете в невыгодном положении, поскольку новый стандарт - автоматический макет - станет распространенным.

Кроме того, Springs и Struts неэффективны для сложных представлений. Автоматическая компоновка значительно более мощная.

С iOS 7, это в ранние дни, и хотя я точно не знаю, что это за последствия, iOS 7 Руководство по переходу на изменение интерфейса что использование Auto Layout облегчит процесс перехода:

Если ваше приложение использует автоматический макет, ваша задача проще. В Xcode 5 автоматический макет может помочь приложению адаптировать новые показатели элементов пользовательского интерфейса и соответствующим образом реагировать на динамические изменения размера текста. Автоматическая компоновка особенно полезна, если вы переходите к iOS 6 или вам нужно поддерживать как iOS 6, так и iOS 7.

Если вы не использовали Auto Layout, теперь может быть идеальное время для начала, особенно если вам нужно поддерживать более одной версии приложения. Если вы используете ручные или программные макеты, вы несете ответственность для обеспечения правильного соответствия макета при размере текста изменения.

Лично я использовал автоматический макет с Xcode 4.6.3. Начальная кривая обучения болезненна, но после этого действительно становится радостью в использовании. Я определенно никогда не вернусь в "Спрингс" и "Струты" или вручную вычислил показатели с использованием фреймов.

Ответ 2

Да, вы все еще можете использовать Springs и Struts в iOS7, он работает в моем бета-приложении, хотя у меня было плохое время, фиксируя мои взгляды, но, в конце концов, оно работает.

Прочтите следующее:

Если ваше приложение уже использует Auto Layout, средство разработки который автоматически настраивает макет для пользователей, просматривающих устройство разрешения и ориентации, ваш переход к iOS7 будет справедливым простой. В противном случае мы рекомендуем вам оценить, следует ли вам Начало. Самая большая причина, почему вы должны начать, это то, что теперь с iOS7 пользователь имеет возможность изменять размер текста и приложение, в свою очередь, будет уважать это, обновив макет для поддержки желаемого размера текста. Если вы используете "Спрингс и Struts" или программный макет, тогда вам нужно будет потратить значительное время манипулирования представлениями, чтобы получить ваши макеты правильно. Это, конечно же, может повлиять на решение, которое вы принимаете для поддержки iOS6.

Ссылка здесь.

Ответ 3

Вы должны использовать Автомарта благодаря более обновленному способу использования ограничений