Реализовать делегат в didSelectItemAt - PullRequest
1 голос
/ 24 марта 2019

Я использую делегат для установления соединения между UICollectionViewCell и UICollectionViewController.В связи с этим я хочу сказать, что если пользователь нажимает на UIView, его суперкласс изменяется, я уже сделал это с помощью жеста.Единственная проблема, я думаю, я должен реализовать это делегирование в didSelectItemAt протоколе UIcollectionView ', что я не уверен, как это сделать.

Например, сначала я сделал это в cellForItemAt, что было ошибкой, покупку я мог легко реализовать.

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "listCell", for: indexPath) as? ListCell
    cell?.selectionDelegate = self // implement the delegate
}

но я не знаю, как сделать то же самое в didSelectItemAt, потому что я думаю, что я должен сделать это здесь, а не в cellForItemAt

 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

}

СпасибоЗаранее так много за вашу помощь

1 Ответ

0 голосов
/ 24 марта 2019

Допустим, у вас был исходный делегат выбора:

protocol SelectionDelegate {
    func didSelect(_ cell: ListCell)
}

Тогда вы можете легко реализовать didSelect collectionView, просто вызвав ваш делегат выбора:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    guard let cell = collectionView.cellForItem(at: indexPath) as? ListCell else { return }
    didSelect(cell)
}
...