好的,我有另一个UITableView问题。由于某种原因,indexPath.row都混乱了。当我注释掉设置单元格的if语句时,一切正常。 NSLogs告诉我他们按顺序加载,但是所有单元都没有故障。
它们似乎也在重复;我只看到8个细胞,它们一遍又一遍地重复着。
这是我的代码:
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
NSLog(@"row: %d",indexPath.row);
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
// Add subviews like this:
// [[cell contentView] addSubview:objectName];
// And I get the row number like this: indexPath.row when getting objects from the array
}
return cell;
}
答案 0 :(得分:0)
现在设置的方式cell.selectionStyle
,cell.backgroundColor
和cell.contentView.backgrounColor
等只有在if (cell == nil)
为真时才会设置。您需要将该代码移到if语句块之外,以便在dequeueReusableCellWithIdentifier:
生成单元格时以及库存中没有单元格时生成任何内容(即nil)。