很多时候,我们都需要在项目中添加长按手势,比如UICollectionView中,我们长按对某一个item进行删除,那么这时,我们就需要在集合试图中添加长按的手势,手势的添加是简单的,但是添加过手势之后,我们怎么区分我们长按选中的是哪一个item呢
首先,我们先来看看我们是如何添加长按手势的
1.创建集合试图,这个就比较简单了.创建完集合试图,我们在集合试图上面添加长按的手势
UIGestureRecognizerDelegate 先遵从协议
longPressGr =[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressToDo:)];
longPressGr.minimumPressDuration=1.0;
longPressGr.delegate=self;
longPressGr.delaysTouchesBegan=YES;
[_myCollectionView addGestureRecognizer:longPressGr];
2.我们在longpressToDo里面添加方法
-(void)longPressToDo:(UILongPressGestureRecognizer *)gestureRecognizer
{if(gestureRecognizer.state !=UIGestureRecognizerStateEnded) {return;
}
CGPoint p=[gestureRecognizer locationInView:self.collectionView];
NSIndexPath*indexPath =[self.collectionView indexPathForItemAtPoint:p];if(indexPath ==nil){
NSLog(@"couldn't find index path");
}else{//get the cell at indexPath (the one you long pressed)UICollectionViewCell* cell =[self.collectionView cellForItemAtIndexPath:indexPath];//do stuff with the cell}
}