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