0

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

根据apple的说法,这个事件 UIControlEventTouchDragEnter 是: 手指被拖入控件边界的事件。

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

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

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

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

4

1 回答 1

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);
}
于 2013-05-21T03:26:26.103 回答