之前給 UITableView 中的 cell 添加手勢,一直是寫在 cell 里面的腥寇,今天同伴告訴我可以直接添加在 tableView 對象上,使用?
CGPoint point = [longPress locationInView:_tableView];
找到相應(yīng)的手勢位置,然后再使用
NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:point];
找到 cell 所在的位置仑扑,從而找到相應(yīng)的 cell,最后進行相應(yīng)的處理置鼻。
?? 在 UICollectionView 的?Incorporating Gesture Support?一章節(jié)開頭出就有寫道:
You should always attach your gesture recognizers to the collection view itself—not to a specific cell or view. TheUICollectionViewclass is a descendant ofUIScrollView, so attaching your gesture recognizers to the collection view is less likely to interfere with the other gestures that must be tracked. In addition, because the collection view has access to your data source and your layout object, you still have access to all the information you need to manipulate cells and views appropriately.
翻譯: 你應(yīng)該切記镇饮,要把手勢識別器添加到 colletion view 自身上,而不是具體的 cell 或 view 上箕母。UICollectionView 繼承自是 UIScrollView储藐, 所以添加手勢識別器到 collection view 能夠有效的減少與其它必須跟蹤的手勢識別器干擾。除此之外嘶是,因為 collection view 能夠訪問它的 data source 和 layout object钙勃,所以你可以更方便的獲得你需要操作的 cells 和 views 的信息。
UITableView 同上聂喇。