我试图在自定义UITableViewCell子类中覆盖-selectedBackgroundView的访问器。但是,当选择单元格时,单元格将继续使用默认的蓝色选择背景。如何改变?
我实际上非常确定这个蓝色选择的东西是selectedBackgroundView ......还有什么应该负责这个有浅色渐变的蓝色背景?奇怪的是,contentView就在那之上,虽然它有一个除了[UIColor clearColor]之外的backgroundColor,但是这个selectedBackgroundView似乎仍然闪耀着。真奇怪。
答案 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:方法。