#xcode #interface-builder #autolayout
#xcode #конструктор интерфейса #автоматическое описание
Вопрос:
В Interface Builder у меня есть куча текстовых полей, которые расположены вертикально. Я хочу, чтобы они были равномерно распределены по вертикали и все имели одинаковый размер.
Я нашел меню выравнивания, которое позволяет выстраивать элементы в линию. Я не могу найти меню для распределения или калибровки. Включает ли Xcode 4 эти команды компоновки?
Ответ №1:
Ответ — НЕТ. И я НЕНАВИЖУ быть «одним из тех людей», которые должны вам это говорить. Я предполагаю, что вы ищете что-то похожее на типичную функцию OmniGraffle — «Холст, сетка, выравнивание». Это ИНСТРУМЕНТ, который делает OG таким чертовски хорошим.
Меня поражает / вызывает отвращение, что компания стоимостью 100 миллиардов долларов не в состоянии правильно использовать этот базовый принцип визуального оформления, в то время как компания, годами пишущая программное обеспечение для собственной платформы той же идиотской компании, отказывалась от этого, сколько я себя помню. Команде Xcode нужно собрать все воедино. Например, привязки KVO являются и всегда были шуткой — не такой уж смешной, — которую невозможно реализовать, плагинов больше нет… И, ИМХО, автоматическая компоновка Lion непригодна. Им нужны какие-то НОВЫЕ ЛЮДИ или что-то в этом роде, может быть, это не разработчики или что-то в этом роде.. Потому что Xcode становится сложнее в использовании, а не проще. Это выглядит лучше и лучше организовано … но очевидно, что в этой группе нет «большого мыслителя», который готов подвергнуть сомнению их хрупкие и неуклюжие парадигмы.
Они шутят с этим? Как насчет этого Xcode? _переключите, выровняйте кнопки, затем распределите равномерно — как 99% людей захотят, в 99% случаев — и не разбрызгивайте бессмысленные строки по всему?__ И что, черт возьми, такое Content Hugging Priority
и Content Compression Resistance Priority
? Я дважды прочитал документы и до сих пор понятия не имею, что это такое и как их использовать. Я не Эйнштейн, но если я не могу «получить это» после согласованных усилий… Это слишком сложно. лол. Хорошо, мне нужно пойти вычеркнуть бесполезную тираду из моего списка дел, сейчас.
Комментарии:
1. Может быть, они знают, что
Content Hugging Priority
такое.2. Действительно, не могу с этим полностью согласиться. У них отличная основа в Obj-C / Cocoa, но их инструменты разработки и их недавние API, похоже, были разработаны людьми, которым на самом деле не приходилось использовать их для создания реальных приложений. IB практически непригоден для сложных макетов, а такие чрезвычайно простые функции, как масштабирование и распределение элементов управления, просто полностью отсутствуют.
3. Чтобы пояснить, что это такое: в разделе Автоматическая компоновка есть набор объектов, называемых ограничениями . Ограничения хотят толкать или вытягивать элементы пользовательского интерфейса в определенных направлениях; насколько сильно они этого хотят, измеряется приоритетом ограничения. Приоритет объема содержимого / сопротивления сжатию — это то, насколько сильно конкретный элемент хочет (а) быть как можно меньше, чтобы вместить его содержимое, и (б) быть не меньше , соответственно. Взаимодействие приоритетов ограничений и этих приоритетов в конечном итоге определяет, куда направляются элементы вашего пользовательского интерфейса во время выполнения.
4. Согласен, и это все еще не улучшилось с Xcode 5. Я готов разбить свой MacBook вдребезги после того, как потратил часы, пытаясь заставить оконный контроллер выровнять его виды и изменить все его размеры. Смешно!
Ответ №2:
Надеюсь, это поможет: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html
Концепция состоит в том, чтобы использовать некоторые разделительные представления и сделать их одинаковыми по размеру. Необходимо выполнить несколько трюков с приоритетами, поэтому, пожалуйста, перейдите по ссылке для получения определенного ответа.
Ответ №3:
Скучный ответ — вводить координаты вручную. Не очень плавно, но это дает вам точный контроль над размещением, по крайней мере (в инспекторе размеров).