1. ホーム
  2. objective-c

[解決済み] ボタン押下時のUITableViewセルの行の取得

2023-05-15 05:12:22

質問

テーブルビューコントローラに、セルが一列に表示されています。各セルには3つのボタンがあります。私は各セルのタグに1,2,3という番号を付けました。問題は、どのセルでボタンが押されたかを見つける方法がわからないことです。現在、ボタンの1つが押されたときに送信者のタグを取得するだけです。ボタンが押されたときに、セルの行番号も取得する方法はないでしょうか?

どのように解決するのですか?

本当はこの方法を使うべきなのです。

CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];

Swiftバージョンです。

let buttonPosition = sender.convert(CGPoint(), to:tableView)
let indexPath = tableView.indexPathForRow(at:buttonPosition)

これによって indexPath を、押されたボタンの位置に基づいて返します。 そうすると、あなたはただ cellForRowAtIndexPath を呼び出せばよい。 indexPath.row で、行番号が必要な場合は

もしあなたが偏執的な人であるならば、あなたはチェックすることができます。 if (indexPath) ... を使う前に、念のため indexPath が見つからなかった場合に備えて、使用する前に

他のすべての回答は、Apple がビュー構造を変更することを決定した場合、壊れる可能性があります。