Я использую пользовательский 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)
}
}
Используя touchesBegan, я могу зарегистрировать событие касания и распечатать что-нибудь на консоли. Тем не менее, это похоже на работу даже с обычными нажатиями.
Я ожидаю, что кнопка изменит свое текущее состояние на уменьшитель вместо увеличения, когда ее трогают в 3d
Спасибо