0

我无法弄清楚出了什么问题。下面是我的代码,它调用一次委托方法然后停止。

我应该怎么办?我还没有找到使用这些委托方法的示例代码。我发现的只是滑动和点击的手势识别器,使用不同的代表。

到目前为止的代码:

-(void)initTouchesRecognizer{

    DLog(@"");

    recognizer = [[UIGestureRecognizer alloc] init];

    [self addGestureRecognizer:recognizer];

}


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{


    DLog(@"");


    NSSet *allTouches = [event allTouches];
    for (UITouch *touch in allTouches)
    {


    }

}




-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint location = [touch locationInView:touch.view];

}




- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
       DLog(@"");

}



- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
    [self touchesEnded:touches withEvent:event];
}

我从 initwithrect 调用 initTouchesRecognizer 来获取我的图像视图。

我从根本上做错了什么?

4

2 回答 2

0

无需添加手势识别器。通过覆盖 touchesMoved、touchesEnded 和 touchesBegan 方法,我能够在屏幕上跟踪用户的手指。

根本不调用:

-(void)initTouchesRecognizer

代码,我最初发布的代码将起作用。

于 2013-02-17T11:51:43.733 回答
0

UIGestureRecognizer 是一个抽象类,你不应该将它直接添加到你的视图中。您需要使用从 UIGestureRecognizer 继承的具体子类,例如 UITapGestureRecognizer 或 UIPanGestureRecognizer。您也可以创建自己的具体子类,但这通常不是必需的。

这是将 UIPanGestureRecognizer 添加到您的视图的示例(在您的视图类代码中,手势通常是从控制器添加到视图中的):

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(mySelector:)];
[self addGestureRecognizer:panGesture];

在这种情况下,当用户在此视图中平移时,将调用选择器。如果你添加了一个 UITapGestureRecognizer,选择器会在用户点击时被调用。

您可以查看苹果文档以获取更多信息:http: //developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizer_basics/GestureRecognizer_basics.html#//apple_ref/doc/uid/TP40009541- CH2-SW2

另外,我发现 Paul Hagerty 的斯坦福讲座很棒,这里有一个关于手势识别器的: https ://itunes.apple.com/ca/course/6.-views-gestures-january/id593208016?i=132123597&mt=2

您还应该了解,您发布的所有方法都不是委托方法,并且它们都与您在代码中添加的 UIGestureRecognizer 没有任何关系。这些是您要覆盖的 UIResponder(UIView 继承自的类)的实例方法。抽象 UIGestureRecognizer 也有具有相同名称的实例方法,但它不是在您的类中调用的 UIGestureRecognizer 方法。

于 2013-02-16T20:17:35.327 回答