2009-10-08 126 views
5

问题:表视图中单元格之间的分隔符仅出现在视图加载时显示的单元格中,并且仅在加载时才显示。当tableview向下滚动时,滚动到视图中的单元格在它们之间不显示分隔符,然后当tableview被向上滚动时,初始单元格不显示分隔符。UITableView分隔线在滚动单元格之间消失

详细信息:我有一个UITableView,我添加了标准的UITableViewCells。这些单元格是使用initWithFrame创建的,帧高= 90px。我将从一个笔尖创建的自定义视图添加到该单元格的视图中,height = 90px。单元格高度在tableView:heightForRowAtIndexPath:中指定为90px。

有没有人遇到过这种行为?

回答

6

我有一种感觉,解决这个问题的方法很简单... 我将单元格的高度设置为91px,分隔线显示为它们应该滚动的位置。

3

我无法使用道格拉斯的解决方案,因为我的表格有大量的单元格,并且在旧手机上变得几乎不可用。重复使用单元对于性能至关重要。

,但我设法解决方法使用透明隔膜和加入我在小区的内容查看自己的问题,具体如下:

yourTable.separatorColor = [UIColor clearColor]; 
separatorView.frame = FactRectMake(0, rowHeight-1, appFrame.size.width, 0.2); 
3

我有同样的问题,但我使用了不同的解决方案。 我隔膜消失了,因为我是用我的清除细胞:

for (UIView *eachView in self.subviews) { 
    [eachView removeFromSuperview]; 
} 

这样取出分离器视图以及!

相反,我分配给我的每一个海关的意见(三个标签)标签将它们添加到子视图之前右:

tempFirstNameLabel.tag = 100; 
self.firstNameLabel = tempFirstNameLabel; 
[self addSubview:self.firstNameLabel]; 

然后当我清除了小区,我只是删除了这些观点:

for (int i = 100; i<103; i++) { 
    UIView *eachView = [self viewWithTag:i]; 
    [eachView removeFromSuperview]; 
} 

希望这有助于!这也避免了@Douglas Smith的解决方案带来的内存管理问题。

1

应设置隔离无,然后再次单行

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    // it is a bug in iOS 7 
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
    tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; 
相关问题