iOS (Swift): местоположение сенсорного события в UIButton программно - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть экземпляр UIButton, который я хочу получить точное местоположение касания, даже если триггер подключен к нему.

Кнопка настроена следующим образом:

private var button: UIButton!

private func setupButton() {
    button = UIButton(frame: frame)
    button.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
}

@objc private func buttonPressed(_ button: BounceButton) {
    // I need the location of the touch event that triggered this method.
}

Каков метод определения местоположения события касания, вызвавшего метод buttonPressed, пожалуйста?Я не решаюсь использовать экземпляр UIGestureRecognizer, так как на самом деле у меня есть несколько кнопок с разными значениями tag, которые я использую для выполнения различных действий в методе buttonPressed.

Спасибо за любые предложения.

1 Ответ

0 голосов
/ 10 декабря 2018

Опция 1

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
  if let touch = touches.first {
     let position = touch.location(in: view)
      if button.frame.contains(position) {

      }
  }
}

Опция2

для добавления жеста и доступа к кнопке используйте

@objc func tapped(_ gesture:UITapGestureRecognizer)
{
    print(gesture.view?.tag)
    print(gesture.location(in: gesture.view))
}

жест.view

...