我一直在寻找2天以上的答案。它似乎没有解决。
这是单元格的代码
- (myCustomCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CustomData *m = (CustomData *)[self.allCustomData objectAtIndex:indexPath.row];
static NSString *CellIdentifier = @"customCell";
myCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
[cell setBackgroundColor:[UIColor colorWithRed:255.0f green:255.0f blue:255.0f alpha:1]];
[cell.customTitle setText:m.name];
[cell.customStatus setText:@"Download"];
NSLog(@"%@",cell.customTitle.text);
return cell;
}
'细胞'永远不会回来。日志始终打印正确的文本。但由于某种原因,细胞显得空白。在加载时我注意到第一个单元格显示为空,然后在滚动时,任意顺序的2-3个单元格随机变为空。第一个单元格经常出现在滚动状态。
我似乎无法理解问题所在。
更新
这是两个截屏。第一个是表如何加载,我已经将背景颜色用于调试目的。如您所见,第一个单元格未显示。
下面是第二个屏幕截图,我更改了方向并滚动了一下。你会看到第一个细胞如何神奇地出现,第二个细胞消失了。
另外,为了调试目的,我添加了这两种方法。
- (void)tableView:(UITableView *)tableView willDisplayCell:(dtEditionCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"Display %@ %d %f",cell.editionTitle.text,indexPath.row,cell.frame.origin.x);
}
- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(dtEditionCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"End Display %@ %d %f",cell.editionTitle.text,indexPath.row,cell.frame.origin.x);
}
日志按预期打印。使用正确的文本可以看到所有单元格。
答案 0 :(得分:-1)
我不知道它是否有事可做,但你展示的方法并不完全是tableview使用的方法。以下是我使用自定义单元格的方法。我做得很多而且工作正常:
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TextCell *cell = [tableView dequeueReusableCellWithIdentifier:@"textCellId" forIndexPath:indexPath];
TextFieldContent *cellContent=[[self.dataSource objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
cell.titleLabel.text=cellContent.titleLabel;
cell.textField.placeholder=cellContent.placeHolder;
cell.textField.tag=cellContent.tag;
cell.textField.keyboardType=UIKeyboardTypeDecimalPad;
cell.textField.delegate=self;
return cell;
}
TextFieldContent是一个cutom对象,它包含自定义单元格的所有属性。为了更容易实现。