单击单元格本身而不是按钮时,(静态)单元格中的按钮消失

时间:2016-04-13 16:14:29

标签: ios swift uitableview tableview cell

我的(静态)单元格上的代码有一个奇怪的问题。在多个细胞中,我有一个UIButton。当我点击它时,一切都很好,但当我点击按钮旁边的区域(仍然在单元格中)时,它变为灰色(选中单元格时的颜色)+按钮也会消失!

使用以下代码按下时,我尝试将单元格的背景更改为白色:

    override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    let myBackView=UIView(frame:cell.frame)
    myBackView.backgroundColor = UIColor.clearColor()
    cell.selectedBackgroundView = myBackView

}

但问题仍然存在。When the cell itself isn't pressed 这是在没有推动静态单元的情况下 When I pressed the cell (not the button) 这是我按下单元格(而不是单元格内的按钮)

1 个答案:

答案 0 :(得分:1)

这是选择UITableViewCells时的常见问题,请参阅Why do all backgrounds disappear on UITableViewCell select?

如果您不打算选择单元格,请执行this delegate method

- (NSIndexPath * _Nullable)tableView:(UITableView * _Nonnull)tableView willSelectRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath

并在nil是您的单元格时返回indexPath。这将禁用此单元格的选择。

如果您的单元格都没有被选中,那就更容易了,只需将UITableView's allowsSelection设置为NO(这也可以在Interface Builder中完成)。