2011-11-11 42 views
1

我的應用程序中有一個TableView,我需要更改高度和分隔符的顏色。在SO瀏覽幫助我找出解決方案。 所以我基本上都在我的小區追加一個UIView,並以此作爲「假」分離器:作爲UITableViewCell中的分隔符和行選擇的顏色UIView

UIView *colorSeparator = [[UIView alloc] initWithFrame:CGRectMake(0, 53, cell.frame.size.width, 4)]; 
    colorSeparator.backgroundColor = [UIColor yellowColor]; 
    [cell.contentView addSubview:colorSeparator]; 
    [colorSeparator release]; 

但現在我注意到,當行被竊聽,選擇的顏色適用於我的假隔膜。有誰知道如何避免它? Thx在您的時間建議:)

回答

2

您可以恢復您的分隔符setSelected:animated:setHighlighted:animated:方法的UITableViewCell的顏色。

// just edited your function, it was missing a square bracket 
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { 
    UIColor *c = [[colorSeparator.backgroundColor retain] autorelease]; 
    [super setHighlighted:highlighted animated:animated]; 
    colorSeparator.backgroundColor = c; 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    UIColor *c = [[colorSeparator.backgroundColor retain] autorelease]; 
    [super setSelected:selected animated:animated]; 
    colorSeparator.backgroundColor = c; 
} 
+0

Thx很多!所以你的意思是我應該sublcass UITableViewCell並重寫這兩個方法? –

+0

是的,您應該繼承UITableViewCell,覆蓋此方法並從UITableView委託方法返回新類的對象。 –

+0

thx,它的工作原理!爲您投票! –

相關問題