如何创建公共函数以显示UICollectionView中选定单元格的indexPath

时间:2018-10-04 15:45:45

标签: swift uicollectionview uicollectionviewcell

在我的应用程序中,我需要一个公共函数/公共变量,在其中我需要知道所选单元格的indexPath。自从我是一个新的编码器以来,我对如何实现有了一些想法,但是都没有一个有用的想法。

我只希望可以从类中的任何地方访问选定的indexPath。所以我需要一些建议/帮助。

 func selectedColor(){
    let cell = gamePad.dequeueReusableCell(withReuseIdentifier: "coloredCell", for: IndexPath) as! UICollectionViewCell
        let selectedCell = gamePad.indexPathForItem(at: CGPoint)
    }

2 个答案:

答案 0 :(得分:0)

我同意DávidPásztor的意见,但第一次会为您提供帮助。您需要UITableView的实现委托。我认为它将是这样的:

class TableViewController: UIViewController {
    @IBOutlet var tableView: UITableView!

    var selectedIndexPath: IndexPath?

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.delegate = self
    }
}

extension TableViewController: UITableViewDelegate {
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        selectedIndexPath = indexPath
    }
}

P.S。对于UICollectionView,它是相同的,但是您需要实现UICollectionViewDelegate并如下所示:

class ViewController: UIViewController {
    @IBOutlet var collectionView: UICollectionView!

    var selectedIndexPath: IndexPath?

    override func viewDidLoad() {
        super.viewDidLoad()
        collectionView.delegate = self
    }
}

extension ViewController: UICollectionViewDelegate {
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        selectedIndexPath = indexPath
    }
}

P.S。如果您不需要知道何时轻按单元格的时间,则可以使用indexPathForSelectedRow(@rmaddy)

答案 1 :(得分:-1)