有时候在项目中需要自定义tableviewcell的左右滑动手势,一种方式是对cell进行添加手势,另一种可以直接对tableview进行添加就可以了,个人比较喜欢对tableview添加手势,代码如下:
-(void)initListView{
CGRect rect=CGRectMake(10, 120, ScreenWidth-20, ScreenHeight-190);
self.tableList=[[UITableView alloc]initWithFrame:rect
style:UITableViewStylePlain];
self.tableList.backgroundColor=color_grbw(255.0, 255.0, 255.0, 0.1);
self.tableList.layer.borderColor=[color_grbw(255.0, 255.0, 255.0, 0.3) CGColor];
self.tableList.layer.borderWidth=1;
self.tableList.layer.cornerRadius=4;
self.tableList.delegate=self;
self.tableList.dataSource=self;
[self.view addSubview:self.tableList];
/*
//左右滑动
UISwipeGestureRecognizer *swipeGesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeGesture:)];
[self.tableList addGestureRecognizer:swipeGesture];
[swipeGesture release];
//左划
UISwipeGestureRecognizer *swipeLeftGesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeGesture:)];
swipeGesture.direction=UISwipeGestureRecognizerDirectionLeft;
[self.tableList addGestureRecognizer:swipeLeftGesture];
[swipeLeftGesture release];
*/
[self.tableList release];
}
//划动手势
-(void)handleSwipeGesture:(UIGestureRecognizer*)sender{
CGPoint point = [sender locationInView:self.tableList];
NSIndexPath *index = [self.tableList indexPathForRowAtPoint:point];
HomeCell *cell=(HomeCell *)[self.tableList cellForRowAtIndexPath:index];
UISwipeGestureRecognizerDirection direction=[(UISwipeGestureRecognizer*) sender direction];
//判断是上下左右
switch (direction) {
case UISwipeGestureRecognizerDirectionLeft:
NSLog(@"left");
cell.icon.frame=CGRectMake(10, 7, 23, 35);
break;
case UISwipeGestureRecognizerDirectionRight:
NSLog(@"right");
cell.icon.frame=CGRectMake(100, 7, 23, 35);
break;
default:
break;
}
}