【Swift UIKit】UITableViewCellの中のボタンでIndexPathを取得する方法!

この記事からわかること

  • SwiftUIKitUITableViewCellの中のボタンIndexPath取得する方法
  • UIViewtagプロパティの使い方

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

SwiftのUIKitでUITableViewを使ったリストの中に設置したボタンからIndexPathを取得する方法をまとめていきます。UITableViewの基本的な使用方法はこの記事では解説しませんので、以下の記事を参考にしてください。

リストの中に設置したボタンからIndexPathを取得する方法

今回私がやりたかったことはリストのカスタムセル内に設置したUIButtonからその行のIndexPath(何行目か)を取得することです。カスタムセルの作成方法は以下の記事を参考にしてください。

UIViewの持つtagプロパティを使って値を受け渡すことが解決できました。セルを返すtableViewメソッド内からはindexPath.rowで行数が取得できるので、それをカスタムセルクラスのボタンのタグに設定すればOKです。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TestTableViewCell
        cell.testBtn.tag = indexPath.row
        return cell
    }
class TestTableViewCell: UITableViewCell {
    
    // MARK: - Outlet    
    @IBOutlet  weak var testBtn: UIButton!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
    
    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        testBtn.addTarget(self,action: #selector(self.shareAction),
                           for: .touchUpInside)
    }
    
    // MARK: - Action
    @objc    func testAction(){
        print(testBtn.tag)
    }
}

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index