读书人

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

发布时间: 2012-04-24 14:15:38 作者: rapoo

关于手势和动态添加的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;    }} 

读书人网 >Iphone

热点推荐