2

我只需要在特殊区域捕捉滑动动作。但是调试器告诉unrecognized selector sent to instance

- (void)viewDidLoad
{
    UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc]
          initWithTarget:self.viewName action:@selector(didSwipe:)];
    swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
    [self.view addGestureRecognizer:swipeLeft];
}

-(void)didSwipe:(UISwipeGestureRecognizer*)swipe{
   NSLog(@"swiped left");
}

怎么了?

4

2 回答 2

6

你的手势识别器有一个参数,所以应该是@selector(didSwipe:)(注意冒号)。

于 2012-03-20T16:15:01.747 回答
3

您可能希望目标self不是self.imageName.


编辑响应您的评论。

UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc]
      initWithTarget:self action:@selector(didSwipe:)];
swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
[self.viewName addGestureRecognizer:swipeLeft];

你希望你target成为方法所在的地方。在这种情况下,应该是self。您想将手势识别器添加到应该被触摸的视图中,self.viewName.

于 2012-03-20T16:29:38.850 回答