当前位置: 代码迷 >> Iphone >> 关于手势和动态添加的button之间联系的有关问题
  详细解决方案

关于手势和动态添加的button之间联系的有关问题

热度:39   发布时间:2016-04-25 06:43:33.0
关于手势和动态添加的button之间联系的问题
具体情况如下:有一个imageview,imageview下面有一排button,每个button对imageview上的image进行不同的算法处理。button是动态添加的,在和它相连的action中(这个action暂且命名为- (IBAction)processImage : (id) sender ),根据button的不同tag进行相应的switch判断,来确定是执行什么样的算法。  



现在的问题是:添加了一个UISwipeGestureRecognizer手势,希望能够实现swipe一下imageview(当然也有可能是self.view,这个不是重点)自动处理下一个button相应的算法。


那么该如何实现呢?

------解决方案--------------------
楼主,UISwipeGestureRecognizer会有一个你自定义的监听事件,在这个事件里,把你的当前的button tag +1,然后调用特定tag的算法,你可以算法单独写成方法
------解决方案--------------------
C/C++ code
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;    }}
  相关解决方案