Почему indexPath и IndexPath не принимаются? - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь создать функцию, с помощью которой я могу переключать цвет фона на UICollectionViewCell, в зависимости от того, какая ячейка выбрана и какой цвет выбирается.Я создал эти две функции:

    func selectedCell (at indexPath: IndexPath) {
        let indexPathForFirstRow = indexPath
        gamePad.selectItem(at: indexPathForFirstRow, animated: false, scrollPosition: UICollectionView.ScrollPosition(rawValue: 0))
    }
 @IBAction func selectedColor(_ sender: UIButton) {
        let cell = self.selectedCell(at: IndexPath)
        cell.backgroundcolor = sender.currentTitleColor
    }

Во второй функции возникает проблема, заключающаяся в том, что я не могу использовать IndexPath или indexPath.

Как я могу решить эту проблему?

Это ошибка, которая отображается, когда я использую IndexPath

Невозможно преобразовать значение типа 'IndexPath.Type' в ожидаемый тип аргумента 'IndexPath'

Это ошибка, которая отображается, когда я использую indexPath

Использование неразрешенного идентификатора 'indexPath';Вы имели в виду «IndexPath»?

1 Ответ

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

Вам нужно написать протокол.Вы можете реализовать мой код для вашего ответа.Вы должны определить, какой индексный путь в selectedColor.

// CUSTOM CELL

protocol colorDelegate {

    func changeColor(sender : CustomCell)

}

class CustomCell: UICollectionViewCell {

    var delegate:colorDelegate?

    @IBAction func selectionButtonTapped(_ sender: Any) {

        if delegate != nil {

            delegate?.changeColor(sender: self)

        }
    }


}

// КОНТРОЛЛЕР ПРОСМОТРА

@objc func changeColor(sender: CustomCell) {
    if let indexpath = tableView.indexPath(for: sender) {

        let cell = tableView.cellForRow(at: indexpath) as! CustomCell
        cell.backgroundcolor = .white

   }
} 
...