[英]Tapping cell shows the view that is below
我正在创建带有自定义单元格的表格视图。
每个单元上都有三个按钮。 我添加了一个视图,该视图应占据单元格的宽度和高度,并与三个按钮重叠。 我用它来创建可滑动的单元格。
用作叠加层的视图具有白色背景和不透明的,但是在模拟器上测试该应用程序时,我检测到在轻触单元格时会轻轻显示按钮,请看一下图片。
我应该怎么做才能避免看到按钮。 如果将叠加视图设置为不透明,为什么现在会发生这种情况。 第二个问题是,在单元格上点击时,左侧的红色横条以及一个视图消失了……
谢谢。
我相信这是UITableViewCell
的默认选择样式的结果。 让我们尝试删除默认样式并对其进行自定义。
尝试设置(取决于您的实现):
cell.selectionStyle = UITableViewCellSelectionStyleNone;
在cellForRowAtIndexPath
内部或 self.selectionStyle = UITableViewCellSelectionStyleNone;
在单元格的自定义子类中或 然后,您可以在UITableViewCell的自定义类中实现自定义选择样式。 在初始化方法中,添加类似以下内容的内容:
self.selectedBackgroundView = [[UIView分配] initWithFrame:self.bounds]; self.selectedBackgroundView.backgroundColor = [UIColor lightGrayColor];
上面的答案将完全关闭突出显示单元格的选择,而这可能不是您想要的。
经过几次测试后,似乎发生了什么事:选择一个单元格后,iOS会将该单元格上所有视图的背景色转换为clearColor。
因此,解决方法是仅在选择时将单元格视图的颜色设置回正常:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(tableView.indexPathForSelectedRow()!) as! MyCell
cell.MyViewOnMyCell.backgroundColor = UIColor.redColor()
}
有关其他答案,请参见此问题 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.