Это может произойти, потому что вы устанавливаете тип аксессуара вне кэшированного теста ячейки:
static NSString *CellIdentifier = @"UIDocumentationCell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
[cell setText:mytext];
Чем лучше, ИМХО так:
static NSString *CellIdentifier = @"UIDocumentationCell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
[cell setText:mytext];
Cocoa Touch, похоже, не хочет изменять кэшированный экземпляр ячейки (подпредставления), устанавливая индикатор раскрытия в методе набора ячеек, что приводит к кэшированию индикатора и перерисовывается, когда ячейка появляется снова.