может кто-нибудь объяснить, почему вы должны использовать viewWithTag
для получения подпунктов (например, UILabel
и т. Д.) Из ячейки в dequeueReusableCellWithIdentifier
?Зачем использовать "viewWithTag" с "dequeueReusableCellWithIdentifier"?
Некоторые справочные данные: У меня есть пользовательский номер UITableViewCell
с паролем UILabel
(в нем приведена простая версия ниже). Эти метки определены в ассоциированном файле NIB и объявлены с помощью IBOutlet
s и связаны с классом контроллера пользовательской ячейки. В TableView-х dequeueReusableCellWithIdentifier
, я делаю это:
CustomCell *customCell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CustomCellId"];
if (customCell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil];
for (id oneObject in nib)
if ([oneObject isKindOfClass:[CustomCell class]])
customCell = (CustomCell *)oneObject;
}
customCell.firstLabel.text = @"Hello";
customCell.secondLabel.text = @"World!";
return customCell;
Все отлично работает. Однако из учебников, которые я видел, это выглядит, как при смене наклеек значения я должен делать это вместо:
UILabel *firstLabel = (UILabel *)[customCell.contentView viewWithTag:555];
firstLabel.text = @"Hello";
UILabel *secondLabel = (UILabel *)[customCell.contentView viewWithTag:556];
secondLabel.text = @"World!";
(наклеек значения тегов были установлены в СИБ).
Может кто-нибудь сказать мне, какой метод является предпочтительным и почему?
Спасибо!
Обычно вы используете подкласс UITableViewCell над быстрым и грязным методом viewWithTag. –