Практически эффективное использование IBOutletColletion - PullRequest
5 голосов
/ 03 сентября 2010

Как выглядит практическое использование IBOutletCollection? К сожалению, в документации Apple это кратко упоминается, не давая более широкого представления об использовании. Хорошо, он поддерживает отношения один-ко-многим с IB, но как эффективно обращаться к определенным объектам и использовать их? С TagName? Как обеспечить порядок объектов?

Ответы [ 3 ]

5 голосов
/ 23 октября 2010

Я недавно использовал это, чтобы легко инициализировать сетку меток.У меня есть матрица меток в представлении, и я ссылаюсь на каждую в отдельности (через IBOutlet) для отображения соответствующих данных.Однако, когда представление загружается впервые, я хотел контролировать текст по умолчанию, который отображается во всех ярлыках.Первоначально я хотел, чтобы показалась тире, но так как это для клиента, я хотел, чтобы его было легко изменить.Содержимое представления имеет и продолжает изменяться с течением времени для каждого клиентского запроса.

Вместо написания N строки кода, я создал IBOutletCollection и достиг тех же результатов в 4 (@property, @synthesize и for loop).YMMV, но я нашел это очень полезным в этой ситуации.

0 голосов
/ 28 августа 2011

Я использовал его, чтобы минимизировать код. У меня есть ряд UIViews, которые должны реагировать на события "touch up inside" некоторых UIButtons (пользовательский режим).

Я дал всем UIButtons тег (скажем, от 1005 до 1010), и все UIViews имеют тот же тег, что и UIButton, на который они должны ответить.

Затем я соединил UIViews с коллекцией в Интерфейсном Разработчике. Все события прикосновения UIButton выполняются в одной и той же функции в моем контроллере. Эта функция получает тег объекта-отправителя, выполняет итерацию по списку NSArray (из «IBOutletCollection (UIView)») и сравнивает тег. Каждый раз, когда он попадает, выполняется соответствующее действие.

Жаль, что NSArrays, похоже, не держит приказ ...

0 голосов
/ 04 сентября 2010

Прочитайте еще раз этот раздел в Руководстве пользователя Interface Builder.

IBOutletCollection s на самом деле просто NSArray s, вы можете подключиться к более чем одному объекту в IB. Все объекты, которые вы подключили, попадают в этот массив и могут быть доступны из кода, как и любой другой объект в массиве.

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