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

时间:2015-03-17 18:52:04

标签: ios uitableview

我正在创建一个包含自定义单元格的表格视图。

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

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

enter image description here

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

谢谢。

2 个答案:

答案 0 :(得分:1)

我认为这是UITableViewCell默认选择样式的结果。让我们尝试删除默认样式并自定义它。

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

    {li> cell.selectionStyle = UITableViewCellSelectionStyleNone;cellForRowAtIndexPath内 或 Cell的自定义子类中的
  1. self.selectionStyle = UITableViewCellSelectionStyleNone;
  2. "无"如果您正在使用IB,请在" Selection"下的Interface Builder中。
  3. 然后,您可以在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