繁体   English   中英

点击单元格显示下面的视图

[英]Tapping cell shows the view that is below

我正在创建带有自定义单元格的表格视图。

每个单元上都有三个按钮。 我添加了一个视图,该视图应占据单元格的宽度和高度,并与三个按钮重叠。 我用它来创建可滑动的单元格。

用作叠加层的视图具有白色背景和不透明的,但是在模拟器上测试该应用程序时,我检测到在轻触单元格时会轻轻显示按钮,请看一下图片。

在此处输入图片说明

我应该怎么做才能避免看到按钮。 如果将叠加视图设置为不透明,为什么现在会发生这种情况。 第二个问题是,在单元格上点击时,左侧的红色横条以及一个视图消失了……

谢谢。

我相信这是UITableViewCell的默认选择样式的结果。 让我们尝试删除默认样式并对其进行自定义。

尝试设置(取决于您的实现):

  1. cell.selectionStyle = UITableViewCellSelectionStyleNone; cellForRowAtIndexPath内部或
  2. self.selectionStyle = UITableViewCellSelectionStyleNone; 在单元格的自定义子类中或
  3. 如果使用的是IB,则在Interface Builder中“选择”下的“无”。

然后,您可以在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM