ipad 点击collectionView某些cell不响应的问
作者:
biyu6 | 来源:发表于
2018-05-31 17:42 被阅读0次问题描述:
在ipad中,有一个页面是用UICollectionView做的瀑布流,在这个瀑布流上方有一个文本输入框,想要在点击UICollectionView时隐藏 输入框的键盘。
给UICollectionView 添加了一个手势:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(searchResultCollectionViewClick:)];
[self.collectionView addGestureRecognizer:tap];
//执行手势的方法
- (void)searchResultCollectionViewClick:(id)sender{//点击了collectionView
CGPoint pointTouch = [sender locationInView:_collectionView];
NSIndexPath *indexPath = [_collectionView indexPathForItemAtPoint:pointTouch];
//if (indexPath != nil){//如果点击的是瀑布流上的cell--- 执行点击事件---如果放开,会走两遍didSelectItemAtIndexPath:
// [self collectionView:_collectionView didSelectItemAtIndexPath:indexPath];
// }
if (self.clickSearchResultCollectionView) {//点击了瀑布流--落键盘用的block回调
self.clickSearchResultCollectionView();
}
}
然后bug出现了:
测试页面上有2行,每行3个item;在点击每行的最后一个item时,竟然不跳转了;而其他的item都可以跳转,经查,在点击每行最后一个item时indexPath竟然为nil,太奇葩了。
解决方法:
在添加手势时,加入这一行代码:
tap.cancelsTouchesInView = NO;
cancelsTouchesInView 这个属性默认是YES,系统会识别手势,并取消触摸事件;当设置为NO的时候,手势识别之后,系统将触发触摸事件。
本文标题:ipad 点击collectionView某些cell不响应的问
本文链接:https://www.haomeiwen.com/subject/ngxcsftx.html
网友评论