我有一个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

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

关于ios - iOS(Swift):以编程方式在UIButton中触摸事件的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53696778/

10-10 20:50