gpt4 book ai didi

ios - 在 Collection View 上显示复选标记

转载 作者:行者123 更新时间:2023-11-28 06:22:16 26 4
gpt4 key购买 nike

我有一个 Collection View ,当点击每个单元格时,会弹出一个更大版本的单元格图像,并在再次点击时消失。最重要的是,我希望能够在单元格的一角选择一个 View ,该 View 在再次点击时显示蓝色复选标记(SSCheckMark View)或灰色复选标记。我当前的代码是:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "photoCell", for: indexPath) as! PhotoCell

cell.backgroundColor = .clear
cell.imageView.image = UIImage(contentsOfFile: imagesURLArray[indexPath.row].path)
cell.checkmarkView.checkMarkStyle = .GrayedOut
cell.checkmarkView.tag = indexPath.row
cell.checkmarkView.checked = false

let tap = UITapGestureRecognizer(target: self, action: #selector(checkmarkWasTapped(_ :)))
cell.checkmarkView.addGestureRecognizer(tap)

return cell
}

func checkmarkWasTapped(_ sender: SSCheckMark) {

let indexPath = IndexPath(row: sender.tag, section: 1)

if sender.checked == true {
sender.checked = false
} else {
sender.checked = true
}
collectionView.reloadItems(at: [indexPath])
}

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

addZoomedImage(indexPath.row)
addGestureToImage()
addBackGroundView()

view.addSubview(selectedImage)
}

但是当我运行并选择复选标记 View 时出现错误:

unrecognized selector sent to instancecheckmarkWasTapped() 的第一行我可以看到它不喜欢 sender 但我不知道为什么。任何帮助都会很棒。

最佳答案

UITapGestureRecognizer tapsender 是手势。 checkmarkWasTapped 方法定义错误。您可以使用 sender.view 获取 checkmarView。试试这个。

func checkmarkWasTapped(_ sender: UIGestureRecognizer) {

let checkmarkView= sender.view as? SSCheckMark

let indexPath = IndexPath(row: checkmarkView.tag, section: 1)

if checkmarkView.checked == true {
checkmarkView.checked = false
} else {
checkmarkView.checked = true
}
collectionView.reloadItems(at: [indexPath])
}

关于ios - 在 Collection View 上显示复选标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com