web-dev-qa-db-ja.com

コレクションビューセルにUibuttonアクションを追加する方法は?

enter image description here

したがって、このコレクションビューには、右上隅に編集ボタンを含むセルがあります。アクションをそれに関連付けるにはどうすればよいですか?

collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCellcell.editbutton.addTargetを追加してみましたが、touchUpInsideイベントが検出されません。

6
Chris Mikkelsen

あなたのために必要になるかもしれません-

このコードをcellForItemAtIndexPathに記述します

Swift 2.X

let editButton = UIButton(frame: CGRectMake(0, 20, 40,40))
editButton.setImage(UIImage(named: "editButton.png"), forState: UIControlState.Normal)
editButton.addTarget(self, action: #selector(editButtonTapped), forControlEvents: UIControlEvents.TouchUpInside)

cell.addSubview(editButton)

Swift 3.X

let editButton = UIButton(frame: CGRect(x:0, y:20, width:40,height:40))
editButton.setImage(UIImage(named: "editButton.png"), for: UIControlState.normal)
editButton.addTarget(self, action: #selector(editButtonTapped), for: UIControlEvents.touchUpInside)

cell.addSubview(editButton)

そしてあなたの行動を実行する-

override func viewDidLoad() {
       super.viewDidLoad()
}

@IBAction func editButtonTapped() -> Void {
    print("Hello Edit Button")
}
11
iDeveloper

UICollectionViewCellでUIButtonのアウトレットを作成し、In

func collectionView(_ collectionView: UICollectionView, 
                    cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    cell.button.tag = indexPath.row
    cell.button.addTarget(self, 
        action: #selector(self.yourFunc(), 
        for: .touchUpInside)
}

func yourFunc(sender : UIButton){
    print(sender.tag)
}

ボタンとUICollectionViewCellでuserInteractionが有効になっていることを確認します。

19
Himanshu
protocol CollectionViewCellDelegte {
    func collectionViewCellDelegte(didClickButtonAt index: Int)
}

class ImageCollectionViewCell: UICollectionViewCell {
    var index = 0
    var delegte: CollectionViewCellDelegte? = nil

    @IBAction func buttonAction(_ sender: UIButton) {
        if let del = self.delegte {
            del.collectionViewCellDelegte(didClickButtonAt: index)
        }
    }
}
1
Mustafa Alqudah

UICollectionViewセルの[テイク]ボタン(プログラムまたはストーリーボードを使用)。セルクラスファイルでそのボタンのアクションを追加し、そのセルクラスファイルでデリゲートを宣言し、ボタンアクションメソッドで同じデリゲートを呼び出して編集アクションを実行します。

次に、コレクションビューを作成したViewControllerに同じデリゲートを実装します。

1
Sayali Shinde