XCode 4 Interface Builder: лучший способ работы с большим количеством перекрывающихся представлений

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

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

Ответ 1

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

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

Ответ 2

Другим вариантом при попытке выбрать вид, скрытый другим, является ярлык:

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

Отображает список всех видов под курсором.

Ответ 3

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

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

Ответ 4

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

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

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

  • Если вы хотите скрыть одну из этих групп элементов:
    a) Выберите "Просмотр":
    i) Щелчок по нему в дереве слева или в ii) Ctrl-Shift Щелчок в редакторе макета, а затем выберите представление из списка.

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

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

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