我正在尝试使用UIControlEventTouchDragEnter设置一个按钮作为触发按钮方法的方法。具体来说,我有一个按钮,如果用户将手指按在按钮外面,并且将手指拖动到按钮的边界,我希望触发按钮的方法。
根据apple,此事件UIControlEventTouchDragEnter为:手指被拖入控件边界的事件。
然而,我无法触发按钮。这是我的代码:
- (IBAction)touchDragEnter:(UIButton *)sender {
_samlpe.image = [UIImage imageNamed:@"alternate_pic.png"];
}
因此,当触发此按钮的touchInto时,该方法会将_sample的当前图像更改为此备用图像。如果我只是使用touchUpInside,则单击按钮时图像会更改为备用。
有谁知道为什么这不起作用,或者有解决方法?谢谢!
答案 0 :(得分:4)
touchDragEnter
只有在您最初点按按钮,将手指拖动到按钮边界外侧时,才会触发,然后再次拖动到按钮的边界。
您可能希望在视图控制器类中使用touchesMoved
方法,并根据触摸位置检测输入的按钮:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch * touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:touch.view];
NSLog(@"%f - %f", touchLocation.x, touchLocation.y);
}