如何在 TableView 的 CollectionView 中获取图像的索引路径?
Posted
技术标签:
【中文标题】如何在 TableView 的 CollectionView 中获取图像的索引路径?【英文标题】:How to get a image's indexpath in CollectionView in TableView? 【发布时间】:2018-06-11 07:13:35 【问题描述】:在我的程序中,TableView的每一行都有一个Collection,每个CollectionView有几个Images。我在collectionView(_:, cellForItemAt:)
方法中为图片设置了Tag
和UITapGestureRecognizer
,但是Tag
只能代表图片在CollectionView中的位置。如何知道被点击的图片在Table中的位置,并将TableView的行和Collection的行传递给UITapGestureRecognizer(target:, action: #selector())
方法?
【问题讨论】:
将 tableView 的 indepath.row 放入 collectionview 标签。那么你可以很容易地从collectionview didselect方法中获取标签。 不要在 collectionView 上使用点击手势识别器。请改用 didSelectItemAtIndexPath。在collectionView中编写一个协议并确认tableView中的方法,每次用户点击collectionView中的单元格时都会触发带有collectionView实例的委托及其单元格到tableView的indexPath。现在为了找到包含 collectionView 的 tableView 单元格,使用 tableView 的 indexPathsForRows 方法应该会有所帮助。或者您可以返回将标签设置为 collectionView 的逻辑,这将在 tableView 中表示其 indexPath,而不是返回 collectionView 返回其标签 @SandeepBhandari 我不想点击整个单元格,我只想点击单元格内的图片。 @jake-to :我假设每个图像都在UICollectionView
的单个单元格中,因此您可以使用UICollectionView
didSelectItem
委托方法
【参考方案1】:
你可以这样做:
func imageTapped(gesture: UITapGestureRecognizer)
let location: CGPoint = gesture.location(in: tableView)
let ipath: IndexPath? = tableView.indexPathForRow(at: location)
let cellindex: UITableViewCell? = tableView.cellForRow(at: ipath ??
IndexPath(row: 0, section: 0))
【讨论】:
【参考方案2】:let pointTable :CGPoint = sender.convert(sender.bounds.origin, to: self.upComing_tblView)
let indexpath = self.upComing_tblView.indexPathForRow(at: pointTable)
您可以在此处找到表格视图单元格行
【讨论】:
以上是关于如何在 TableView 的 CollectionView 中获取图像的索引路径?的主要内容,如果未能解决你的问题,请参考以下文章
Collectio集合,List《ArrayList,LinkedList》
线程“主”java.lang.NoSuchMethodError 中的异常:scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collectio
python 基于API示例的场景集合:https://docs.blender.org/api/blender_python_api_current/bpy.props.html#collectio
如何在 JavaFx TableView 中添加 TableView 页脚