一度にUITableView
5行しか表示できない高さ180pxのテーブルビューにはカスタムセルが含まれています。ただし、6 つのセルがあります。つまり、6 番目のセルは、スクロールを使用している場合にのみ表示され、次のようにすべてのセルをループしようとすると、次のようになります。
for (int row = 0; row < [self.autoTableView numberOfRowsInSection:0]; row++) {
NSIndexPath* cellPath = [NSIndexPath indexPathForRow:row inSection:0];
UITableViewCell *cell = [self.autoTableView cellForRowAtIndexPath:cellPath];
if(!cell)
NSLog(@"NULL %i", row);
}
実行時に、スクロールを行わなかった場合NSLog
、コンソール ウィンドウに「 」というステートメントが表示されます。下にスクロールしてNULL 5
最後のセルを表示すると、「 」というNSLog
ステートメントが表示されNULL 0
ます。NSLog
上下にスクロールして、すべてのセルが既に作成されているのに、なぜこれが起こるのですか?
cellForRowAtIndexPath
コードは次のとおりです。
static NSString *customCellIdentifier = @"customCell";
EditableTableDataRow *cell = nil;
cell = (EditableTableDataRow *)[tableView dequeueReusableCellWithIdentifier:customCellIdentifier];
if (cell == nil)
{
cell = [[[EditableTableDataRow alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:customCellIdentifier itemPadding:0 scaleToFill:NO] autorelease];
}
次に、このカスタム セル内にあるラベルとテキスト フィールドでさまざまなことを行い、最後に:
...
return cell;
よろしくお願いします。