我当前项目的UITableViewCell行为令我感到困惑.我有一个相当简单的UITableViewCell子类.它为基本视图添加了一些额外的元素(通过[self.contentView addSubview:...]并设置元素上的背景颜色,使它们看起来像黑色和灰色矩形框.
因为整个表格的背景具有这种具体的纹理图像,所以每个单元格的背景都需要透明,即使在选中时也是如此,但在这种情况下它应该变暗一点.我已经设置了一个自定义的半透明选定背景来实现这个效果:
UIView *background = [[[UIView alloc] initWithFrame:self.bounds] autorelease];
background.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.6];
background.opaque = NO;
[self setSelectedBackgroundView:background];
Run Code Online (Sandbox Code Playgroud)
虽然这样会产生正确的背景效果,但当我选择单元格时会出现奇怪的副作用; 所有其他背景在某种程度上turnt 关闭.这是一个截图.底部单元看起来应该并且未被选中.顶部单元格被选中,但它应该显示黑色和灰色的矩形区域,但它们已经消失了!

谁知道这里发生了什么,更重要的是:我怎么能纠正这个?
我正在绘制自定义UITableViewCells.我的细胞是不透明的,完全在细胞的drawRect中绘制,以帮助提高性能.我想自己处理所选单元格的外观.如果不这样做,那么我的单元格内容将被添加的selectedBackgroundView覆盖.覆盖我的单元格的setSelected:animated方法是否常见或可接受,以便正确完成.我想如果我这样做,那么我就不会调用super的setSelected方法,因为我将处理单元格如何显示其选中的方法.我还必须设置单元格的选定属性.
任何帮助都会很棒.谢谢.