如何在collectionView单元格的didSelectItem上获取uiTableView单元格索引

时间:2019-07-30 07:58:58

标签: swift uitableview uicollectionview

我有一个tableView,其中的单元格包含collectionView。现在,当我选择集合视图单元格的任何单元格时,我想获取tableview行索引

2 个答案:

答案 0 :(得分:2)

创建UICollectionView的子类并为其添加属性。

class MyCustomCollectionView: UICollectionView {
    var parentTableViewIndexPath: IndexPath?
}

在表格视图单元格中使用此集合视图

class MyCustomTableViewCell: UITableViewCell {
    @IBOutlet weak var customCollectionView: MyCustomCollectionView!
}

在表的cellForRow方法中,设置indexPath属性

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "IDENTIFIER", for: indexPath) as! MyCustomTableViewCell
    cell.customCollectionView.parentTableViewIndexPath = indexPath
    //Any additional customisation
    return cell
}

在您的collectionView的didSelectItemAt中,这样访问indexPath

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    guard let tableIndexPath = (collectionView as? MyCustomCollectionView)?.parentTableViewIndexPath else { return }
}

答案 1 :(得分:1)

cellForRowAt

cell.collectionView.tag = indexPath.row