Использование тегов Interface Builder - PullRequest
3 голосов
/ 15 декабря 2008

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

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

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

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

Любое обсуждение этого вопроса будет оценено.

Спасибо

Ответы [ 4 ]

6 голосов
/ 16 декабря 2008

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

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

3 голосов
/ 15 декабря 2008

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

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

1 голос
/ 13 апреля 2010

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

1 голос
/ 16 декабря 2008

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

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