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