我有一个自定义的UITableViewCell
子类.我已经将我的cell子类的contentView
设置为
此外,我设置cell.contentView.opaque = NO
是为了在单元格的某些区域实现透明度(不幸的是,桌子后面的背景图像必须通过每个单元格的某些部分显示,以实现风格效果.我知道这是一个性能上的成功.必须如此).
问题:当选中或高亮显示(按下)单元格时,我仍然看到默认的蓝色渐变背景被绘制在单元格后面(在透明区域).这会模糊桌子后面的图像,这很糟糕.
目标:防止出现蓝色渐变背景,但仍然能够从-[MyContentView drawRect:]
中判断cell.isSelected
和cell.isHighlighted
属性,以确定如何绘制自己的自定义 Select /高亮显示.
我试过的:
设置
cell.selectionStyle = UITableViewCellSelectionStyleNone
可以达到预期的效果,防止出现蓝色渐变 Select 背景,但也会阻止正确设置cell.isSelected
和cell.isHighlighted
属性,这意味着我无法进行自定义 Select /高亮显示绘制在单元格的
-init
或-prepareForReuse
方法中设置cell.selectionBackgroundView = nil
和cell.backgroundView = nil
不会阻止蓝色渐变 Select 背景-[MyContentView -drawRect:]
方法does中的设置cell.selectionBackgroundView = nil
具有防止蓝色渐变 Select 背景的预期效果,但这似乎非常刺耳覆盖-[UITableViewCell setSelected:animated:]为禁止操作.这不会产生阻止蓝色渐变 Select 背景的预期效果