我正在尝试创建一个函数,该函数可以根据选择的单元格和选择的颜色来切换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'吗?
答案 0 :(得分:0)
您需要编写协议。您可以实施我的代码来回应。您必须在selectedColor
中定义哪个索引路径。
//自定义手机
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
}
}