Как я могу создать публичную функцию, чтобы показать indexPath выбранной ячейки в UICollectionView - PullRequest
0 голосов
/ 04 октября 2018

В моем приложении мне нужна публичная функция / публичная переменная, в которой мне нужно знать indexPath выбранной ячейки.Так как я новый кодер, у меня есть некоторые идеи, как сделать это, но ни один из них еще не работал.

Я просто хочу, чтобы я мог получить доступ к выбранному indexPath из любого места в классе.Поэтому мне нужен совет / помощь.

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

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Я согласен с Давидом Пассором, но помогу вам впервые.Вам нужно реализовать делегат 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
    }
}

PS Для 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
    }
}

PS Если вы этого не сделаетенужно знать момент, когда ячейка была нажата, тогда вы можете использовать indexPathForSelectedRow (@rmaddy)

0 голосов
/ 04 октября 2018
...