我正在创建一个包含自定义单元格的表格视图。
每个单元格上都有三个按钮。我添加了一个视图,它应该占据单元格的宽度和高度,重叠三个按钮。我用它来创建一个可滑动的单元格。
用作叠加层的视图具有白色背景和不透明,但是在模拟器上测试应用程序时,我检测到当点击单元格时,按钮会轻微显示,请查看图片。
我应该怎么做才能避免看到按钮。如果叠加视图设置为不透明,为什么现在会发生这种情况。 第二个问题是当敲击单元格时,左边的红色条,也是一个视图,消失...
谢谢。
答案 0 :(得分:1)
我认为这是UITableViewCell
默认选择样式的结果。让我们尝试删除默认样式并自定义它。
尝试设置(取决于您的实施):
cell.selectionStyle = UITableViewCellSelectionStyleNone;
在cellForRowAtIndexPath
内
或
Cell的自定义子类中的self.selectionStyle = UITableViewCellSelectionStyleNone;
或然后,您可以在UITableViewCell的自定义类中实现自定义选择样式。在初始化方法中,添加如下内容:
self.selectedBackgroundView = [[UIView alloc] initWithFrame:self.bounds]; self.selectedBackgroundView.backgroundColor = [UIColor lightGrayColor];
答案 1 :(得分:0)
上述答案将关闭完全突出显示的单元格选择,这可能不是您想要的。
经过多次测试后,看来发生了什么,当选择一个单元格时,iOS会将该单元格上所有视图的背景颜色转换为clearColor。
因此,解决方法是在选择时简单地将单元格视图的颜色设置为正常:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(tableView.indexPathForSelectedRow()!) as! MyCell
cell.MyViewOnMyCell.backgroundColor = UIColor.redColor()
}
有关其他答案,请参阅this question。