2009-10-08 128 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; 
相關問題