edison11111cry
edison11111cry
采纳率0%
2015-04-23 13:31 阅读 1.7k

请教关于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来处理为什么不行?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • dlw222333 dlw222333 2015-04-27 08:17

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

    点赞 1 评论 复制链接分享
  • mushaofeng1990 mushaofeng1990 2015-04-24 01:07

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

    点赞 评论 复制链接分享
  • sinat_27687359 esdfasfe 2015-04-29 02:03

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

    点赞 评论 复制链接分享
  • darongzi1314 王大锤子呦 2015-05-08 09:37

    [self.gestureLabel setUserInteractionEnabled:YES];

    点赞 评论 复制链接分享

相关推荐