如何更改UITableViewCell的蓝色选择?

时间:2010-06-29 19:46:12

标签: iphone uitableview

我试图在自定义UITableViewCell子类中覆盖-selectedBackgroundView的访问器。但是,当选择单元格时,单元格将继续使用默认的蓝色选择背景。如何改变?

我实际上非常确定这个蓝色选择的东西是selectedBackgroundView ......还有什么应该负责这个有浅色渐变的蓝色背景?奇怪的是,contentView就在那之上,虽然它有一个除了[UIColor clearColor]之外的backgroundColor,但是这个selectedBackgroundView似乎仍然闪耀着。真奇怪。

2 个答案:

答案 0 :(得分:7)

您必须将此代码放入“cellForRowAtIndexPath”

要禁用单元格选择:(在单击单元格时)

cell.selectionStyle = UITableViewCellSelectionStyleNone;

启用单元格:(在单击单元格时)

cell.selectionStyle = UITableViewCellSelectionStyleBlue;(By Default)

cell.selectionStyle = UITableViewCellSelectionStyleGray;

如果要在cellForRowAtIndexPath“

中提供自定义颜色
if (cell==nil)

{  
 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];
 UIView *v = [[[UIView alloc] init] autorelease];
    v.backgroundColor = [UIColor redColor];
    cell.selectedBackgroundView = v;
}

一切顺利。

答案 1 :(得分:1)

听起来你只想添加

self.selectionStyle = UITableViewCellSelectionStyleNone;

到你的自定义类的init。如果要进行任何重负荷处理,也可以覆盖setSelected:animated:方法。