使用UIControlEventTouchDragEnter触发按钮的方法......但不起作用?

时间:2013-05-21 03:04:44

标签: ios objective-c xcode uibutton uiimage

我正在尝试使用UIControlEventTouchDragEnter设置一个按钮作为触发按钮方法的方法。具体来说,我有一个按钮,如果用户将手指按在按钮外面,并且将手指拖动到按钮的边界,我希望触发按钮的方法。

根据apple,此事件UIControlEventTouchDragEnter为:手指被拖入控件边界的事件。

然而,我无法触发按钮。这是我的代码:

- (IBAction)touchDragEnter:(UIButton *)sender {
    _samlpe.image = [UIImage imageNamed:@"alternate_pic.png"];
}

因此,当触发此按钮的touchInto时,该方法会将_sample的当前图像更改为此备用图像。如果我只是使用touchUpInside,则单击按钮时图像会更改为备用。

有谁知道为什么这不起作用,或者有解决方法?谢谢!

1 个答案:

答案 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);
}