Для проекта, над которым я работаю, я использую TDBadgedCell, написанный Тимом Дэвисом. В то время как ячейка работает нормально по большей части, BadgeNumber продолжает кэшироваться. Мне интересно, как я могу это исправить.
Мое сообщение [tableView: cellForRowAtIndexPath] выглядит так:
- (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
TDBadgedCell *cell = (TDBadgedCell *)[_tableView dequeueReusableCellWithIdentifier:CellIdentifier];
Contact *contact = [contactArray objectAtIndex:[indexPath row]];
if (cell == nil) {
cell = [[TDBadgedCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
}
[cell setBadgeNumber:[[contact unreadMessageCount] intValue]];
UIImage *statusImage = nil;
if ([[contact status] isEqualToString:@"online"]) {
statusImage = [[StatusController sharedInstance] imageForStatus:Online];
} else if ([[contact status] isEqualToString:@"away"]) {
statusImage = [[StatusController sharedInstance] imageForStatus:Away];
}
[[cell imageView] setImage:statusImage];
NSString *displayName = [contact displayName];
[[cell textLabel] setText:displayName];
NSString *phone = [contact phone];
[[cell detailTextLabel] setText:phone];
[cell setBadgeNumber:[[contact unreadMessageCount] intValue]];
return cell;
}
Текст и изображение корректно перерисовываются при прокрутке вверх и вниз. Badgenumber не однако. Любые предложения о том, как это исправить, будут приветствоваться.