XCode 4 Interface Builder: лучший способ работы с множеством перекрывающихся видов - PullRequest
11 голосов
/ 28 октября 2011

В IB у меня есть довольно много представлений, которые показаны.Многие из них скрыты при загрузке приложения, но отображаются позже при нажатии кнопок.Это все хорошо, но при построении этого макета в IB очень сложно что-либо компоновать, потому что существует очень много перекрывающихся видов, некоторые из которых частично прозрачны (те, которые настроены как скрытые), а другие полностью перекрывают и покрывают другие.Это делает компоновку очень сложной.

Какой метод лучше всего подходит для размещения множества видов, подобных этой?Есть ли другой способ разбить вещи?Или, что еще лучше, могу ли я полностью скрыть вид (как в фотошопе), чтобы я мог отредактировать нижний вид, а затем снова включить этот слой?

Ответы [ 4 ]

13 голосов
/ 24 апреля 2013

Другой вариант при попытке выбора вида, который скрыт другим, - это сочетание клавиш:

'ctrl' + 'shift' и нажатие

.список всех видов под курсором.

8 голосов
/ 28 октября 2011

Мне неизвестен какой-либо способ скрытия объектов на холсте, но полезный прием для сложных макетов состоит в двойном щелчке элемента в дереве документа слева - это выбирает элемент и фокусируется на холсте. Вы можете использовать клавиши курсора, чтобы подтолкнуть его.

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

2 голосов
/ 06 января 2014

Я столкнулся с этой проблемой для приложения, которое я создаю и которое имеет изображение парка в виде ариала с интерактивными горячими точками. При нажатии на точку доступа отображается всплывающее окно UIview с информацией об этом месте в парке. Я использую один и тот же VC / XIB для трех парков. Это делает XIB действительно занятым и трудным для работы (то есть, с той же проблемой, что и у вас). Детальные UIViews затрудняют работу с представлениями внизу. Мой обходной путь - выбрать каждый подробный UIView, который скрывал часть XIB, над которой я хотел работать, и добавить 1000 к UIView origin.x в инспекторе размера. Это отодвинуло те UIViews достаточно далеко, чтобы я мог делать то, что мне нужно было с XIB. Затем, когда я закончил, я переместил их обратно на х 1000. (Мне просто нужно было переместить их горизонтально, чтобы сделать то, что мне нужно)

Я знаю, что это неуклюже, но, учитывая, что XCode не имеет удобного способа скрывать части XIB - это был самый быстрый подход, о котором я мог подумать!

1 голос
/ 10 октября 2016

Один подход к обработке перекрывающихся элементов в IB:

  1. Убедитесь, что группы элементов, которые вы хотите скрыть, сгруппированы в представления.

  2. Дайте этим названиям имена: например, ViewOptionA, ViewOptionB и ViewOptionC.
    Это можно сделать, нажав на название представления в дереве, пока оно выбрано, и затем напечатав новое имя.

  3. Если вы хотите скрыть одну из этих групп предметов:
    а) Выберите вид одним из следующих способов:
    я) Нажав на дерево слева или
    ii) Ctrl-Shift Щелкните в редакторе макета и выберите вид из списка.

    b) В инспекторе атрибутов установите Alpha равным 0.

  4. Когда вы хотите отобразить одну из этих групп предметов:
    Что касается 2), но установите альфа обратно в 1

[Вам нужно помнить, чтобы показать все виды, прежде чем публиковать!
Если вы забывчивы, как я, то, возможно, вы можете создать подкласс UIView и установить для Alpha значение 1. Я еще не пробовал эту идею создания подклассов.]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...