Использование тегов Interface Builder

Я использую функцию тега конструктора интерфейса для доступа к некоторым UILabels, которые я создаю в xib-файле. Поскольку это UITextViewCell, я хочу избежать лишних вызовов методов, но я хочу сделать это тоже правильно. Таким образом, когда я делаю:

UILabel *label = (UILabel *)[cell viewWithTag:1];

Мне интересно, если я должен обернуть это так:

if([[cell viewWithTag:1] isKindOfClass [UITableViewCell class]]) {
    UILabel *label = (UILabel *)[cell viewWithTag:1];
}

Любая дискуссия по этому вопросу будет оценена.

Спасибо

15.12.2008 18:33:58
4 ОТВЕТА
РЕШЕНИЕ

Если у вас не много разных объектов разных классов с подпредставлениями, помеченными как «1», то в этом нет необходимости.

Если у вас действительно есть куча разных объектов (скажем, ячеек), которые имеют разные классы, но у всех есть подпредставления с тегом 1, я бы пересмотрел вашу схему тегирования. Возможно 101, 201, 301 и т. Д.

3
15.12.2008 18:46:50

Как и в августе, я бы предложил сделать ваши номера тегов уникальными в пределах этой ветви иерархии вашего представления.

Я бы также предложил вам настроить enumперечисление возможных значений тегов, чтобы ваш viewWithTag:метод стал более читабельным.

6
15.12.2008 22:56:44

Да, я считаю, что метод enum работает хорошо, или просто выполняю #define foo 1, #define bar 2 и т. Д.

1
16.12.2008 01:08:17

Вы устанавливаете теги в конструкторе интерфейса, используя команду-1 в редакторе атрибутов, и ищите «тег» под настройкой фона.

1
13.04.2010 09:50:59