Xcode 4 — IB — равномерно распределить элементы управления?

#xcode #interface-builder #autolayout

#xcode #конструктор интерфейса #автоматическое описание

Вопрос:

В Interface Builder у меня есть куча текстовых полей, которые расположены вертикально. Я хочу, чтобы они были равномерно распределены по вертикали и все имели одинаковый размер.

Я нашел меню выравнивания, которое позволяет выстраивать элементы в линию. Я не могу найти меню для распределения или калибровки. Включает ли Xcode 4 эти команды компоновки?

Ответ №1:

Ответ — НЕТ. И я НЕНАВИЖУ быть «одним из тех людей», которые должны вам это говорить. Я предполагаю, что вы ищете что-то похожее на типичную функцию OmniGraffle — «Холст, сетка, выравнивание». Это ИНСТРУМЕНТ, который делает OG таким чертовски хорошим.

выравнивание, тупицы

Меня поражает / вызывает отвращение, что компания стоимостью 100 миллиардов долларов не в состоянии правильно использовать этот базовый принцип визуального оформления, в то время как компания, годами пишущая программное обеспечение для собственной платформы той же идиотской компании, отказывалась от этого, сколько я себя помню. Команде Xcode нужно собрать все воедино. Например, привязки KVO являются и всегда были шуткой — не такой уж смешной, — которую невозможно реализовать, плагинов больше нет… И, ИМХО, автоматическая компоновка Lion непригодна. Им нужны какие-то НОВЫЕ ЛЮДИ или что-то в этом роде, может быть, это не разработчики или что-то в этом роде.. Потому что Xcode становится сложнее в использовании, а не проще. Это выглядит лучше и лучше организовано … но очевидно, что в этой группе нет «большого мыслителя», который готов подвергнуть сомнению их хрупкие и неуклюжие парадигмы.

шутки над нами, автоматическое описание lion

Они шутят с этим? Как насчет этого 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:

Скучный ответ — вводить координаты вручную. Не очень плавно, но это дает вам точный контроль над размещением, по крайней мере (в инспекторе размеров).