我使用的是自定义tableViewCell,其中有两个按钮可以将值递增到数组。我的目标是通过每个按钮中的3Dtouch事件,使按钮减小值。
我一直在搜索Apple的开发人员文档,并尝试使用
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
但这似乎并不一致(不是每次触摸都被记录下来)
我的自定义表格单元格如下:
protocol RegistarColheitasTableViewCellDelegate {
func buttonTapped(sender: RegistarColheitasTableViewCell, button: UIButton)
}
class RegistarColheitasTableViewCell: UITableViewCell {
@IBOutlet weak var hasteLabel: UILabel!
@IBOutlet weak var quantidadeLabel: UILabel!
@IBOutlet weak var baldeButton: UIButton!
@IBOutlet weak var individualButton: UIButton!
var delegate: RegistarColheitasTableViewCellDelegate?
override func awakeFromNib() {
self.selectionStyle = .none
hideButtons(toggle: true)
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
@IBAction func ButtonTapped(_ sender: UIButton) {
delegate?.buttonTapped(sender: self, button: sender)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
// super.touchesBegan(touches, with: event)
touches.forEach { (touch) in
if(touch.force >= 1){
print("3D Touch?")
}
}
}
func hideButtons(toggle: Bool){
baldeButton.isHidden = toggle
individualButton.isHidden = toggle
}
func updateWith(quantidade: Int) {
self.quantidadeLabel.text = String(quantidade)
}
}
使用touches开始,我可以注册touch事件并在控制台上打印一些内容。但是,即使使用普通水龙头,这似乎仍然有效。 我希望按钮在3dtouched时将其当前状态更改为递减器,而不是递增器。
谢谢