首页 > 代码库 > #iOS开发常用方法集锦#为UITableView添加UISwipeGestureRecognizer手势

#iOS开发常用方法集锦#为UITableView添加UISwipeGestureRecognizer手势

?

本文永久地址为http://www.cnblogs.com/ChenYilong/p/4103039.html ,转载请注明出处。

印象笔记链接:https://app.yinxiang.com/shard/s22/sh/04150175-aac6-4981-b71d-d7246de3037b/a0f139b2619a4607

?

?

?

<UIGestureRecognizerDelegate>

-(void)viewDidLoad

{

? ? [superviewDidLoad];

? ? [selfsetupSwipeGestureRecognizer];

? ? //...

}

-(void)setupSwipeGestureRecognizer{

? ? UISwipeGestureRecognizer*swipeGestureUp=[[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(handleSwipeGesture:)];

? ? swipeGestureUp.direction=UISwipeGestureRecognizerDirectionUp;

? ? //默认为1,可删

? ? [swipeGestureUpsetNumberOfTouchesRequired:1];

? ? //默认为YES,可删

? ? [swipeGestureUpsetDelaysTouchesBegan:YES];

? ? //当self为UIScrollerView或其子类时,比如为UITableView添加手势时,必须添加此行代码,详见下方参考链接

? ? swipeGestureUp.delegate=self;

? ? [self.viewaddGestureRecognizer:swipeGestureUp];

?

? ? UISwipeGestureRecognizer*swipeGestureDown=[[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(handleSwipeGesture:)];

? ? swipeGestureDown.direction=UISwipeGestureRecognizerDirectionDown;

? ? //默认为1,可删

? ? [swipeGestureDownsetNumberOfTouchesRequired:1];

? ? //默认为YES,可删

? ? [swipeGestureDownsetDelaysTouchesBegan:YES];

? ? //当self为UIScrollerView或其子类时,比如为UITableView添加手势时,必须添加此行代码,详见下方参考链接

? ? swipeGestureDown.delegate=self;

? ? [self.viewaddGestureRecognizer:swipeGestureDown];

}

-(void)handleSwipeGesture:(UISwipeGestureRecognizer*)sender

{

? ? //Gesture detect - swipe up/down , can be recognized direction

? ? if(sender.direction==UISwipeGestureRecognizerDirectionUp)

? ? {

? ? ? ? MyLog(@"向上滑动");

? ? }

? ? elseif(sender.direction==UISwipeGestureRecognizerDirectionDown)

? ? {

? ? ? ? MyLog(@"向下滑动");

? ? }

}

//当self为UIScrollerView或其子类时,比如为UITableView添加手势时,必须添加此行代码,详见下方参考链接

-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizershouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer{

? ? returnYES;

}

//左右手势时添加

// -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {

// ? ? return UITableViewCellEditingStyleNone;

// }

//参考文献

//下面的第一个链接解释为何要添加gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:方法

http://stackoverflow.com/questions/2800016/how-do-you-add-gestures-to-a-uitableviewcontroller

//下边两个是为CELL添加手势

http://stackoverflow.com/questions/4454920/gesture-recognizers-and-tableview

http://stackoverflow.com/a/4604667/213987

//下面是替代#解决方案#,用touch的delegate事件来#解决方案#

http://stackoverflow.com/questions/8181774/how-to-recognize-swipe-in-all-4-directions/20734326#20734326

@end

#iOS开发常用方法集锦#为UITableView添加UISwipeGestureRecognizer手势