检测UIButton内部发送器操作方法中的点击/按压的位置

时间:2014-11-18 12:29:19

标签: swift uiview uibutton

我有UIButton拉伸到视图的大小(覆盖视图/屏幕)。

我设置了一个触地得分动作,我需要在此动作中找出按钮上按下/按下的位置(获取x和y坐标)。

有可能吗?

2 个答案:

答案 0 :(得分:3)

使用senderevent参数创建动作函数。然后,您可以在按钮上获得触摸位置。

@IBAction func buttonAction(sender: AnyObject, event: UIEvent) {
    // downcast sender as a UIView
    let buttonView = sender as UIView;

    // get any touch on the buttonView
    if let touch = event.touchesForView(buttonView)?.anyObject() as? UITouch {
        // print the touch location on the button
        println(touch.locationInView(buttonView))
    }
}

答案 1 :(得分:0)

接受答案的Swift 3 版本:

@IBAction func increaseButtonTapped(sender: UIButton, event: UIEvent) {

    // get any touch on the buttonView

    let events = event.touches(for: sender)

    for event in events! {

        let location = event.location(in: sender)

        print("\(location)")

    }

}