自定义表格视图单元格中的TouchesBegan取消didselectrowatindexpath函数

时间:2019-07-16 21:32:22

标签: swift uitableview didselectrowatindexpath touchesbegan

我有带有自定义单元格的tableview。在自定义单元格中,我有View,它是Custom UIView类。在此自定义UIView类中,我重写touchesBegan和touchesEnded方法以在按下视图时更改自定义视图的背景色。在表格单元格中,touchesBegan和touchesEnded方法可以完美地工作。当我按下tableview单元格时,视图的背景正在改变。但是在这种情况下,tableView的didselectrowat函数不起作用。此自定义UiView类取消了didSelectRowat函数。问题有解决办法吗?

自定义类如下:

BildirisItemBackground类:UIView {

override init(frame: CGRect) {
    super.init(frame: frame)

}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    self.backgroundColor = UIColor(red: 216/255, green: 216/255, blue: 216/255, alpha: 0.3)
}

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.05, execute: {
        ( self.backgroundColor = UIColor(red: 216/255, green: 216/255, blue: 216/255, alpha: 0.0))
    })
}

}

didSelectrowat函数:

func tableView(_ tableView:UITableView,didSelectRowAt indexPath:IndexPath){         打印(indexPath.row)     }

我希望打印tableView的选定行。但是什么都没打印。

1 个答案:

答案 0 :(得分:1)

在touchBegan()方法内使用超级方法。当一个类从另一个类继承时,继承的类称为子类,而其继承的类称为其超类。这里的超类是SELECT * FROM (SELECT TLInstance, Data, RPTMth FROM dbo.VIEW_MeterData) p PIVOT (max(Data) FOR RPTMth IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]) ) AS MeterDataPivot 。添加UIView后,它将覆盖super.OverrideMethodName()的{​​{1}}。

UIView