iOS(Swift):以编程方式在UIButton中触摸事件的位置

时间:2018-12-09 21:20:01

标签: ios swift uibutton touch

我有一个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 :(得分:1)

选项1

def four_in_a_row(grid)
  four_in_a_row_by_row(grid) ||
  four_in_a_row_by_row(grid.transpose) ||
  four_in_a_row_by_row(diagonals(grid)) ||
  four_in_a_row_by_row(diagonals(rotate90(grid)))
end

four_in_a_row_by_row(grid) 
  #=> "w"

选项2

添加手势并访问按钮使用

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) {

      }
  }
}

gesture.view