请教关于IOS手势的问题

@property (weak, nonatomic) IBOutlet UILabel *gestureLabel;
-(void)tapGesture{
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap:)];
tap.numberOfTapsRequired = 1;
tap.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:tap];
}
刚入门,正在看手势这块。对于上面的代码有2个疑问,求大神解答:
1, 如果我不想让我的整个view响应点击,只想让我的UILabel响应,即我将:

[self.view addGestureRecognizer:tap]; 更改为:

[self.gestureLabel addGestureRecognizer:tap];
点击便不再起作用,我的UILabel也是一个view呀,这是为什么呢,只能self.view吗?

2, initWithTarget:self action:@selector(singleTap:)
这句里的action我理解,就是响应函数,类似于回调用的。但是这个target为什么一定要写self吗,我想让self.gestureLabel来处理为什么不行?

1,你先设置一下UILabel的userInteractionEnabled !只有为yes的时候才能响应手势!
2.target就是self。这个self代表的是当前视图控制器!

楼上正解,需要将UILabel的用户交互功能打开即 self.gestureLabel.userInteractionEnabled = YES; 类似的如果要实现UIImageView 允许点击交互也应该进行响应设置。

target是调用方法的对象,这里是self本身调用,所以写self.

[self.gestureLabel setUserInteractionEnabled:YES];