点击UIButton时手指的iOS x坐标

时间:2012-03-04 18:37:46

标签: ios button location touch touchesbegan

我有一个UIButton。当用户点击所述按钮时,如何获得手指的x坐标。我认为它将涉及touchesBegan,但如果按钮上出现“touchesBegan”,我怎么才能获得值?如果有一种方法(不仅监视按钮的x,y,宽度和高度,并检查我的触摸是否在该区域)我将需要禁用按钮的用户交互,以便代码可以处理它而不是内置xib的东西。谢谢!

1 个答案:

答案 0 :(得分:9)

“水龙头”通常被认为是按钮内部的触摸,然后是按钮内的触摸。你需要弄清楚你是想要内部触碰事件还是内部触碰事件(或两者兼而有之)。

假设你想要内触式活动。在视图控制器中编写这样的方法:

- (IBAction)buttonWasTouched:(UIButton *)button forEvent:(UIEvent *)event {
    NSSet *touches = [event touchesForView:button];
    NSLog(@"button:%@ touches:%@", button, touches);
}

如果您在笔尖中创建按钮,请按住Control键并单击该按钮并将其“Touch Down”插座连接到视图控制器上的buttonWasTouched:forEvent:操作(可能是文件所有者)。

如果您要在代码中创建按钮,请向该按钮发送addTarget:action:forControlEvents:,将其UIControlEventTouchDown事件与视图控制器的buttonWasTouched:forEvent:操作相关联。

如果您想捕捉内部触摸事件,请在笔尖中连接其“Touch Up Inside”插座,或在代码中使用UIControlEventTouchUpInside