滚动后UITableView的单元格分隔符消失

How*_*ear 2 uitableview ios

我有一个UITableView配置为'UITableViewStylePlain',其UITableViewCellSeparatorStyleSingleLine用于其分隔符样式.细胞具有背景颜色.

问题是当您滚动桌面视图时,一旦某些单元格从屏幕上消失并被带回,分隔符将不再可见.

单元格注册为:

[tableView registerNib:nib forCellReuseIdentifier:cellIdentifier];
Run Code Online (Sandbox Code Playgroud)

细胞代码:

- (void)customizeMyTable
{
    [self.tableView setDataSource:self];
    [self.tableView setDelegate:self];
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;

    NSString *cellIdentifier = [MyTableViewCell cellIdentifier];
    UINib *nib = [UINib nibWithNibName:cellIdentifier bundle:nil];

    [self.tableView registerNib:nib forCellReuseIdentifier:cellIdentifier];
    self.tableView.rowHeight = 50;
}

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    MyTableViewCell *cell = (MyTableViewCell*)[tableView dequeueReusableCellWithIdentifier:cellID];

    [cell configure:someDataForThisRow];

    return cell;
}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell.backgroundColor = [UIColor lightGrayColor];
}
Run Code Online (Sandbox Code Playgroud)

有人遇到这个问题吗?这似乎只发生在iOS 5上,而不是iOS 6 Tableviews上.

Ján*_*nos 12

如果您在自定义单元格中实现了layoutSubviews,并且您不小心忘记调用相应的超级方法,则不会看到分隔线.

也许你应该检查一下你是否忘记用其他方法打电话给super.

- (void)layoutSubviews
{
    [super layoutSubviews]; //<-THIS LINE YOU NEED

    //own code continues here
}
Run Code Online (Sandbox Code Playgroud)