0

我有一个子类:

CustomView : UIScrollView. 

在这个子类中,我有一些方法,比如说,用一些 UI 元素填充我的自定义视图。我想向这些元素添加 UIGesterRecognizer 功能,但我不知道如何处理设置委托和添加选择器:

@implementation  CustomView 

-populateMe{

     UIImageView *iv = [...];
     UIGesterRecognizer r = [UIGesterRecognizer alloc] 
          initWithTarget:self 
          action:@selector(handleMySwipe:); 
                          //<==where to declare handler

     r.delegate = self; //<==COMPILER ERROR self
     [iv.addGestureRecognizer r];
} 

所以我的问题是我在上面评论的地方:self 不是一个有效的委托(我试过 self.superclass),我需要在哪里声明一个处理程序以执行操作,即 handleMySwipe。

请解释一下,以便我理解。

4

1 回答 1

0

CustomView 如果你为它实现UIGestureRecognizerDelegate 协议,可能是一个委托。也就是说,在您的CustomView类中实现协议要求您执行的一些方法。

完成此操作后,您应该能够将目标参数设置为self没有任何错误。由于您的目标是 now self,因此您需要handleMySwipe: 您的CustomView类中实现选择器/方法,因为它会在那里寻找它(目标)。

- (void) handleSwipe:(UIGestureRecognizer *)gr {
}
于 2012-12-18T23:22:51.263 回答