Я создаю свои ячейки из массива. Последний объект в моей области создается по-другому, так как я хочу добавить новую UILabel в contentView ячейки. (Чтобы в последней ячейке отображалось общее количество записей в UILabel).
По какой-то причине моя последняя ячейка, которая добавляет UILabel в contentView, продолжает дублироваться. Он будет отображаться в других ячейках, испортить их отображение и т. Д. У меня есть чувство, что это связано с повторным использованием ячеек, но я не уверен, как это исправить.
Вот мой метод:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *kCellID = @"cellID";
// Bounds
CGRect bounds = [[UIScreen mainScreen] bounds];
Person *person = nil;
if (tableView == self.searchDisplayController.searchResultsTableView) {
person = [people objectAtIndex:indexPath.row];
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellID];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kCellID] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
// Check if it is the first cell
if (person == [people lastObject]) {
cell.accessoryType = UITableViewCellAccessoryNone;
cell.userInteractionEnabled = NO;
UILabel *count = [[UILabel alloc] initWithFrame:CGRectMake(-4, 11, bounds.size.width - 10, 20)];
count.autoresizingMask = UIViewAutoresizingFlexibleWidth;
count.textColor = [UIColor darkGrayColor];
count.font = [UIFont systemFontOfSize:16];
count.textAlignment = UITextAlignmentCenter;
count.text = person.nameFirst;
cell.textLabel.text = nil;
cell.detailTextLabel.text = nil;
[cell.contentView addSubview:count];
return cell;
}
}//end
cell.textLabel.text = [NSString stringWithFormat:@"%@, %@", person.nameLast, person.nameFirst];
// Check if they are faculty staff
if ([person.status isEqualToString:@"Staff/Faculty"]) {
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@: %@", person.status, person.department];
} else {
cell.detailTextLabel.text = person.status;
}//end
return cell;
}
Может ли кто-нибудь помочь мне понять, как я могу заставить это работать правильно, чтобы моя UILabel не создавалась в разных ячейках?