我正在尝试创建一个按钮,当用户的触摸被带到按钮的任何位置时(无论他们是在内部触摸,还是从外部拖动到按钮内部),它将触发一个动作。本质上,我需要创建一种在手指位于按钮内部时触发动作的方法。
“Touch drag enter”结合“touch down inside”听起来可以完成这项工作,但它的工作方式似乎与我需要的不同。
另外,如果它可以在情节提要中完成而不是硬代码(如 touchesBegan/moved),我更喜欢它,但如果没有其他方法也没关系。
Touch drag enter
只有当您在控件内部开始触摸并将其拖动到控件边界之外,然后将其拖回控件内部时,才会被调用,而不离开触摸。因此,您需要对按钮进行子类化并实现所需的功能。
要么您必须将所有事件与您打算在 IB 按下按钮时调用的方法一一绑定。
或者
您可以尝试UIControlEventAllTouchEvents
在代码中注册按钮。这是一个可能有帮助的例子
[_btnRoundRect addTarget:self action:@selector(btnPressedAction) forControlEvents:UIControlEventAllTouchEvents];
- (void)btnPressedAction{
NSLog(@"Bttn pressed");
}
在 IB Touch Down 中设置连接时应该是您正在寻找的。每当用户的手指点击按钮时,都会调用该操作。