我正在开展一个项目,其中performance
我的视图层次结构中的UICollectionView
如下所示:
我有两个表格视图单元格,每个tableView单元格中有一个UITableViewCell.
而每个UICollectionView
包含4 UICollectionView
,所以我想知道我的按钮中包含的确切tagValue每当按下时UICollectionViewCell
。
我还给了 cellForItem atIndexpath TableView单元类中的按钮标签值,如此
UICollectionViewCell
我也给了按钮选择器。
答案 0 :(得分:1)
试试这个:
删除此行:
cell.button.tag = indexpath.item
添加此功能
@IBAction func clickCollectionCellButton(sender : UIButton){
var cell: UICollectionViewCell? = (sender.superview?.superview as? UICollectionViewCell) //track your view hierarchy
var indexpath: IndexPath? = collectionView?.indexPath(for: cell!)
// do your additional work
}
答案 1 :(得分:0)
无需分配标记值,您可以直接在按钮中获取单元格indexPath
假设您为按钮指定一个选择器,如下所示: -
@IBAction function buttonAction(_ sender:UIBUtton){
if let indexPath = viewIndexPathInCollectionView(sender , collView:pass your collectionView here){
// here you will get indexPath of your collectionView Cell
print(indexPath.item)
}
}
使用此函数通过在此函数中传递单元格项来获取集合视图单元格的索引
func viewIndexPathInCollectionView(_ cellItem: UIView, collView: UICollectionView) -> IndexPath? {
let pointInTable: CGPoint = cellItem.convert(cellItem.bounds.origin, to: collView)
if let cellIndexPath = collView.indexPathForItem(at: pointInTable){
return cellIndexPath
}
return nil
}