【Swift UIKit】UITableViewCellの中のボタンでIndexPathを取得する方法!
この記事からわかること
- SwiftのUIKitでUITableViewCellの中のボタンでIndexPathを取得する方法
- UIViewのtagプロパティの使い方
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)
}
}
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。