2017-03-25 3 views
1

私はコレクションビューを持っています。各セルがタップされると、より大きなバージョンのセルイメージがポップアップし、再度タップすると消えます。これの上に青色のチェックマーク(SSCheckMark View)を表示するセルの隅のビューを選択できるようにしたいと思います。また、再度タップするとグレー表示のチェックマークが表示されます。ドンコレクションビューにチェックマークを表示

unrecognized selector sent to instancecheckmarkWasTapped()の最初の行に、私はそれが送信者を好きではないことがわかりますが、私:

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) 
} 

しかし、私は実行して、チェックマークの表示を選択すると、私はエラーを取得する:私の現在のコードがあります理由は分かりません。どんな助けも素晴らしいだろう。

答えて

1

UITapGestureRecognizertapsenderはジェスチャーです。 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]) 
} 
+0

おはようございます。小切手が表示され消滅する理由を知っていますか? – Wazza

関連する問題