您的位置:首页 > 产品设计 > UI/UE

[置顶] 为UITableView添加UISwipeGestureRecognizer手势

2017-08-28 19:43 507 查看
尤其适用于多个cell 之间的切换

addGestureRecognize

//Right Swipe

UISwipeGestureRecognizer *gestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHandlerRight:)];
[gestureRecognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
gestureRecognizer.delegate=self;
[self.tableView addGestureRecognizer:gestureRecognizer];
//Left Swipe

UISwipeGestureRecognizer *gestureRecognizer1 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHandlerLeft:)];
gestureRecognizer1.delegate=self;
[gestureRecognizer1 setDirection:(UISwipeGestureRecognizerDirectionLeft)];
[self.tableView addGestureRecognizer:gestureRecognizer1];


delegate

#pragma mark - ******** UIGestureRecognizerDelegate

//当self为UIScrollerView或其子类时,比如为UITableView添加手势时,必须添加此行代码,

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
//左右手势时添加
#pragma mark - ******** UITableViewDelegate

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

return UITableViewCellEditingStyleNone;
}


标题按钮的切换时 ,处理刷新表格数据

-(void)swipeHandlerRight:(UISwipeGestureRecognizer *)sender
{

//Your ViewController

//
//    UIView *targetview = sender.view;
//    if(targetview.tag == 1) {
//        return;
//    }

if (_currentIndex<=0) {
return;
}
_currentIndex--;

[_headLineView setCurrentIndex:_currentIndex];

}

-(void)swipeHandlerLeft:(UISwipeGestureRecognizer*)sender
{
//    UIView *targetview = sender.view;
//    if(targetview.tag == 1) {
//        return;
//    }
//    //Your ViewController

if (_currentIndex>2) {
return;
}
_currentIndex++;
[_headLineView setCurrentIndex:_currentIndex];

}


#pragma mark - ******** headLineDelegate

-(void)refreshHeadLine:(NSInteger)currentIndex
{
_currentIndex=currentIndex;
[_tableView reloadData];
}


HeadLineView 标题按钮和下表横线父控件

//传入currentIndex
-(void)setCurrentIndex:(NSInteger)CurrentIndex
{
_CurrentIndex=CurrentIndex;//改变currentIndex
[self shuaxinJiemian:_CurrentIndex];
if ([_delegate respondsToSelector:@selector(refreshHeadLine:)]) {
[_delegate refreshHeadLine:_CurrentIndex];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐