Я не уверен, почему, но мой UITableView, который ничего необычного, показывает повторяющиеся строки, когда это не должно быть.
Кажется, что строки, которые добавляются, когда пользователь прокручивает (то есть строки, которые находятся за пределами экрана, чтобы начать), получают данные для неправильного индекса строки. Это почти как когда новая ячейка выводится из очереди, она использует ячейку, которая была «использована», но не была очищена правильно.
Вам нужно «очистить» ячейки, находящиеся в очереди, чтобы новые ячейки не использовали уже созданные ячейки?
мой код как ниже:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CustomCellIdentifier = @"CustomCellIdentifier";
MyDayCell *cell = (MyDayCell *)[tableView
dequeueReusableCellWithIdentifier: CustomCellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyDayCell" owner:self options:nil];
for (id oneObject in nib)
if ([oneObject isKindOfClass:[MyDayCell class]])
cell = (MyDayCell *)oneObject;
}
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];
NSArray *thisSectionItems = (NSArray*)[self.listData objectForKey: [[NSNumber alloc] initWithInt:section]];
MyDayDetails *rowData = [thisSectionItems objectAtIndex:row];
//setup my cells data here...
return cell;
}
Что-то не так с этим кодом?
кто-нибудь видел что-нибудь подобное раньше?