具体情况如下:有一个imageview,imageview下面有一排button,每个button对imageview上的image进行不同的算法处理。button是动态添加的,在和它相连的action中(这个action暂且命名为- (IBAction)processImage : (id) sender ),根据button的不同tag进行相应的switch判断,来确定是执行什么样的算法。  现在的问题是:添加了一个UISwipeGestureRecognizer手势,希望能够实现swipe一下imageview(当然也有可能是self.view,这个不是重点)自动处理下一个button相应的算法。
那么该如何实现呢?

解决方案 »

  1.   

    楼主,UISwipeGestureRecognizer会有一个你自定义的监听事件,在这个事件里,把你的当前的button tag +1,然后调用特定tag的算法,你可以算法单独写成方法
      

  2.   

    UISwipeGestureRecognizer *swipeGestureRecognizer = nil;
        
        swipeGestureRecognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)] autorelease];
        [swipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionUp];
        [self.view addGestureRecognizer:swipeGestureRecognizer];
        
        swipeGestureRecognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)] autorelease];
        [swipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionDown];
        [self.view addGestureRecognizer:swipeGestureRecognizer];
        
        swipeGestureRecognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)] autorelease];
        [swipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionLeft];
        [self.view addGestureRecognizer:swipeGestureRecognizer];
        
        swipeGestureRecognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)] autorelease];
        [swipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionRight];
        [self.view addGestureRecognizer:swipeGestureRecognizer];-(void)swipe:(UISwipeGestureRecognizer *)swipeGestureRecognizer
    {
        switch (swipeGestureRecognizer.direction) {
            case UISwipeGestureRecognizerDirectionUp:
                NSLog(@"UISwipeGestureRecognizerDirectionUp");
                //your method
                break;
            case UISwipeGestureRecognizerDirectionDown:
                NSLog(@"UISwipeGestureRecognizerDirectionDown");
                //your method
                break;
            case UISwipeGestureRecognizerDirectionLeft:
                NSLog(@"UISwipeGestureRecognizerDirectionLeft");
                //your method
                break;
            case UISwipeGestureRecognizerDirectionRight:
                NSLog(@"UISwipeGestureRecognizerDirectionRight");
                //your method
                break;
            default:
                break;
        }
    }
    自己实现swipe方法就可以了。