私はできる限りこれを説明しようとし、誰かが何が起こっているのか理解できることを願っています:
コアデータを使用してデータを 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;
}
おわかりのように、最後のセルにはアクセサリ タイプを持たないように指示していますが、他のすべてのセルにはアクセサリ タイプがあります。
通常のセルと付属の矢印:
最後のセル:
最後のセルがある一番下までスクロールしてから上にスクロールするまで、すべてが美しく機能します。付属の矢印があるはずの表のセルの一部で、付属の矢印が消えます!! (しかし、それらのすべてではありません)
同じセルですが、矢印が消えました:
ここで何が起こっているのですか?