我有一个 UIButton。当用户点击所述按钮时,如何获得手指的 x 坐标。我认为这将涉及 touchesBegan 但如果按钮上发生“touchesBegan”,我如何才能获得价值?如果有办法(不只是监视按钮的 x、y、宽度和高度并检查我的触摸是否在该区域),我是否需要禁用按钮的用户交互,以便代码可以处理它而不是内置xib的东西。谢谢!
问问题
1774 次
1 回答
9
“点击”通常被认为是在按钮内部触地,然后在按钮内触地。您需要确定是否需要 touch-down-inside 事件或 touch-up-inside 事件(或两者)。
假设您想要 touch-down-inside 事件。在视图控制器中编写这样的方法:
- (IBAction)buttonWasTouched:(UIButton *)button forEvent:(UIEvent *)event {
NSSet *touches = [event touchesForView:button];
NSLog(@"button:%@ touches:%@", button, touches);
}
如果您在 nib 中创建按钮,请按住 control 并单击该按钮并将其“Touch Down”出口连接到buttonWasTouched:forEvent:
您的视图控制器(可能是文件的所有者)上的操作。
如果您在代码中创建按钮,请addTarget:action:forControlEvents:
向按钮发送一个以将其UIControlEventTouchDown
事件连接到视图控制器的buttonWasTouched:forEvent:
操作。
如果您想捕捉 touch-up-inside 事件,请在 nib 中连接其“Touch Up Inside”插座,或UIControlEventTouchUpInside
在代码中使用。
于 2012-03-04T18:47:37.910 回答