質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

720閲覧

カスタムセルの中でindexPath.rowを取得したい

hoo

総合スコア12

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/12/11 07:48

編集2018/12/11 07:52

閲覧ありがとうございます。
tableView上でカスタムセルを使うのにあたり「.swift」の新しいファイルを作りそこにカスタムセルの中身をコードで書いています。
カスタムセルの中に配置したボタンがタップされたら、tableViewのindexPath.rowを使用した処理を書きたいのですが、どうすればよいか検討もつきません。
分かる方がいらっしゃいましたら教えてください。

Swift

1 2// カスタムセルのクラス 3class CustomCell: UITableViewCell { 4 5 // ボタンを作成 6 var botton = UIButton(frame: CGRect(x: 0, y: 0, width: 60, height: 30)) 7 8 override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { 9 super.init(style: style, reuseIdentifier: reuseIdentifier) 10 11 // ボタンを貼る 12 botton.setTitle("Botton", for: .normal) 13 botton.setTitleColor(.black, for: .normal) 14 botton.addTarget(self, action: #selector(sample), for: .touchUpInside) 15 contentView.addSubview(botton) 16 } 17 18 @objc func sample() { 19 // ここにindexPath.rowを使った処理を書きたいです 20 print("ここにindexPath.rowを使った処理を書きたいです") 21 } 22 23 required init?(coder aDecoder: NSCoder) { 24 fatalError("init(coder:) has not been implemented") 25 } 26 27 override func awakeFromNib() { 28 super.awakeFromNib() 29 // Initialization code 30 } 31 32 override func setSelected(_ selected: Bool, animated: Bool) { 33 super.setSelected(selected, animated: animated) 34 35 // Configure the view for the selected state 36 } 37} 38 39class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 40 41 42 override func viewDidLoad() { 43 super.viewDidLoad() 44 45 // tableViewを表示 46 let myTableView = UITableView(frame: CGRect(x: 0, y: 0, width: 200, height: 400), style: .plain) 47 myTableView.rowHeight = 45 48 myTableView.delegate = self 49 myTableView.dataSource = self 50 myTableView.allowsSelection = false 51 myTableView.register(CustomCell.self, forCellReuseIdentifier: NSStringFromClass(CustomCell.self)) 52 53 view.addSubview(myTableView) 54 55 } 56 57 func numberOfSections(in tableView: UITableView) -> Int { 58 return 1 59 } 60 61 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 62 return 25 63 } 64 65 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 66 let cell = tableView.dequeueReusableCell(withIdentifier: NSStringFromClass(CustomCell.self), for: indexPath) as! CustomCell 67 68 return cell 69 } 70} 71

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

CustomCellにindexPathを保存する変数を用意して、セル生成時にindexPathを保存してください。

投稿2018/12/11 07:54

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoo

2018/12/11 09:09

早速の回答ありがとうございます。 問題を解決することができました。 感謝です!
makeMeKing

2019/04/12 02:53

ずっと解決方法を探してましたがおかげさまで一瞬で解決しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問