在collectionview中的uiimage上点击手势
Posted
技术标签:
【中文标题】在collectionview中的uiimage上点击手势【英文标题】:tap gesture on uiimage in collectionview 【发布时间】:2015-09-08 13:55:33 【问题描述】:在我的UICollectionView
的每个单元格中,我都有多个要与之交互的对象。
因此,我真的想在单元格的每个对象上添加一个点击手势,而不是使用didSelect
委托方法。
为简单起见,我删除了示例中的所有其他对象:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! PlacesCollectionViewCell
let tap = UITapGestureRecognizer(target: self, action: "gotToSelectedPlace:")
tap.numberOfTapsRequired = 1
cell.imageView.userInteractionEnabled = true
cell.imageView.addGestureRecognizer(tap)
cell.imageView.file = places[indexPath.row].picture
cell.imageView.loadInBackground()
return cell
在 viewDidLoad 中,我使用笔尖:
collectionView.registerNib(UINib(nibName: "PlacesCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "Cell")
UICollectionView 设置:
延迟内容触摸:是的 可取消的内容触摸:是的在这个例子中,我无法处理点击手势。什么都没发生。 我错过了什么吗??
谢谢
【问题讨论】:
您遇到了问题。单元格已经有一个轻击手势。那只是选择它。你不能在 didSelectItemAtIndexPath 和 didDeselect 中处理你的交互吗? imageView 是什么类型的对象?标准 UIImageView 没有file
属性或 loadInBackground()
方法。这可能是问题
我忘了说,这个是PFFile,UIImageView的子类...
@soulshined 我没有使用 didSelect 委托方法,所以在我看来没有问题。你不觉得吗?
【参考方案1】:
试试这个
var doubletapgesture : UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "processDoubleTap:")
doubletapgesture.numberOfTapsRequired = 1
collectionView.addGestureRecognizer(doubletapgesture)
现在处理手势
func processDoubleTap (sender: UITapGestureRecognizer)
if sender.state == UIGestureRecognizerState.Ended
var point:CGPoint = sender.locationInView(collectionView)
var indelPath:NSIndexPath =collectionView.indexPathForItemAtPoint(point)
if indexPath
println("image taped")
else
//Do Some Other Stuff Here That Isnt Related;
【讨论】:
它是这样工作的,但我必须检查我的对象的每个点位置......不明白为什么我的代码不起作用,更容易。 在您的情况下,您正在为每个单元格添加手势,这会占用太多内存。 如果你在 UIViewController 中有多个手势,它可能会相互冲突。以上是关于在collectionview中的uiimage上点击手势的主要内容,如果未能解决你的问题,请参考以下文章
一个collectionview单元格中有两个UIImage?
Swift 在 CollectionView 中结合 PHAsset 和 UIImage