我有一个子类:
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。
请解释我明白了。
答案 0 :(得分:0)
CustomView
可能是代理人,如果您为其实施UIGestureRecognizerDelegate
protocol。也就是说,在协议要求的CustomView
类中实现一些方法。
完成后,您应该能够将目标参数设置为self
而不会出现任何错误。由于您的目标现在是self
,因此您需要在 handleMySwipe:
类中实现选择器/方法CustomView
,因为这是它所寻找的位置(靶)。
- (void) handleSwipe:(UIGestureRecognizer *)gr {
}