在没有选择的情况下突出显示UITableView

时间:2017-08-13 03:52:20

标签: ios objective-c swift uitableview uikit

我有一个自定义的UITableViewCell子类,我想显示高亮状态,但没有选择状态。

如何在触摸时突出显示UITableViewCell背景(并在发布时不亮),但不显示选择状态单元格背景(我有自己的自定义选择状态)?

3 个答案:

答案 0 :(得分:0)

您需要实施UITableView delegate方法

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  tableView.deselectRow(at: indexPath, animated: true)
}

答案 1 :(得分:0)

@implementation CustomTableViewCell

- (void)awakeFromNib {
    [super awakeFromNib];
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // You have your code here as you said
}

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
    //Implement custom hilighting code
}

@end

答案 2 :(得分:0)

首先,您需要将allowsSelection设置为false,以使表格视图无法选择。

接下来,创建此自定义表格视图单元格:

class MyCell: UITableViewCell {
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        backgroundColor = .red // or some other color
    }

    override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        backgroundColor = .white

    }
}

在表格视图中使用此自定义单元格。您可以在cellForRowAtIndexPath中执行以下操作:

let cell = MyCell()
cell.isUserInteractionEnabled = true
// configure the cell's other stuff
return cell