У меня есть UITableViewController с большим количеством ячеек, но все они имеют одинаковую конфигурацию - отличается только содержимое ячейки. Вот мой tableView:cellForRowAtIndexPath:
метод в моем UITableViewController :
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"WSTableViewCell";
WSTableViewCell *cell = (WSTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[WSTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
WSObject *item = [self.fetchedResultsController objectAtIndexPath:indexPath];
[cell.textLabel setText:item.title];
return cell;
}
Вот initWithStyle:reuseIdentifier:
в моем пользовательском UITableViewCell :
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
[self.textLabel setFont:[UIFont boldSystemFontOfSize:12]];
[self.textLabel setTextColor:[UIColor colorWithRed:100.0/255.0 green:100.0/255.0 blue:100.0/255.0 alpha:1.0]];
[self.textLabel setHighlightedTextColor:[UIColor colorWithRed:100.0/255.0 green:100.0/255.0 blue:100.0/255.0 alpha:1.0]];
[self.textLabel setNumberOfLines:2];
}
return self;
}
Я только что заметил, что этот initWithStyle:reuseIdentifier:
вызывается для каждой ячейки в табличном представлении, и что dequeueReusableCellWithIdentifier:
в UITableViewController всегда возвращает nil . Насколько я понимаю этот механизм с многоразовыми ячейками, этот вид ячейки должен быть инициализирован только один раз, когда я использую один и тот же идентификатор ячейки. Что мне здесь не хватает?