5

我正在尝试创建一个按钮,当用户的触摸被带到按钮的任何位置时(无论他们是在内部触摸,还是从外部拖动到按钮内部),它将触发一个动作。本质上,我需要创建一种在手指位于按钮内部时触发动作的方法。

“Touch drag enter”结合“touch down inside”听起来可以完成这项工作,但它的工作方式似乎与我需要的不同。

另外,如果它可以在情节提要中完成而不是硬代码(如 touchesBegan/moved),我更喜欢它,但如果没有其他方法也没关系。

4

3 回答 3

5

Touch drag enter只有当您在控件内部开始触摸并将其拖动到控件边界之外,然后将其拖回控件内部时,才会被调用,而不离开触摸。因此,您需要对按钮进行子类化并实现所需的功能。

于 2013-05-15T04:14:10.913 回答
3

要么您必须将所有事件与您打算在 IB 按下按钮时调用的方法一一绑定。

或者

您可以尝试UIControlEventAllTouchEvents在代码中注册按钮。这是一个可能有帮助的例子

[_btnRoundRect addTarget:self action:@selector(btnPressedAction) forControlEvents:UIControlEventAllTouchEvents];


- (void)btnPressedAction{
    NSLog(@"Bttn pressed");
}
于 2013-05-15T03:58:41.717 回答
0

在 IB Touch Down 中设置连接时应该是您正在寻找的。每当用户的手指点击按钮时,都会调用该操作。

于 2013-05-15T03:49:53.567 回答