我将尽我所能解释这一点,并希望有人能理解发生了什么:
我正在使用核心数据将数据加载到 UITableView 中。我正在尝试在 TableView 的末尾添加一个“最后一个单元格”以显示徽标。这是我的代码:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [[self.fetchedResultsController sections] count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
numberOfRows = section;
return [[[self.fetchedResultsController sections] objectAtIndex:numberOfRows] numberOfObjects]+1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[ReminderCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cellBackground.png"]];
row = indexPath.row;
if (row == [[[self.fetchedResultsController sections] objectAtIndex:numberOfRows] numberOfObjects]) {
NSLog(@"%u",[[[self.fetchedResultsController sections] objectAtIndex:numberOfRows] numberOfObjects]);
cell.productLabel.text = nil;
cell.companyLabel.text = nil;
cell.dateLabel.text = nil;
cell.accessoryType = UITableViewCellAccessoryNone;
cell.logo.hidden = NO;
cell.renewLabel = nil;
}
else {
Reminder *reminder = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.productLabel.text = reminder.product;
cell.companyLabel.text = reminder.company;
cell.dateLabel.text = reminder.date;
cell.logo.hidden = YES;
}
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
row = [indexPath row];
if (row == [[[self.fetchedResultsController sections] objectAtIndex:numberOfRows] numberOfObjects]) {
return 50;
}
return 78;
}
正如你所知道的,我告诉最后一个单元格没有附件类型,而所有其他单元格都将有一个。
带辅助箭头的正常细胞:
最后一个单元格:
一切都很好,直到我向下滚动到最后一个单元格所在的底部,然后向上滚动。附属箭头在一些应该有它的表格单元格中消失了!!(但不是全部)
相同的单元格,但箭头消失了:
这里发生了什么?