2

多くのカスタム UITableViewCells が取り込まれた UITableView があります。それらのそれぞれには、サブビューとして色付きの長方形があります (現在、これは様式化された UIButton ですが、必要に応じて実装できます)。

tableview:didSelectRowAtIndexPath:その部分が選択されたときだけUITableViewCell を呼び出したい。

他の同様の質問では、サブビューを取得してイベントを無視する方法を尋ねました。しかし、その長方形の外側のどこかを選択するとトリガーされるため、これは私にはうまくいきません。

メソッドをトリガーするセルの領域を制限するか、セルからのトリガーを無効にして、代わりにサブビューがメソッドをトリガーできるようにするかはわかりません。いずれにせよ、実装の詳細はわかりません。

4

4 に答える 4

1

なぜ didSelectRowAtIndexPath: を呼び出したいのかわかりませんが、ボタンからタッチ イベントを受け取りたい場合は、ボタンを押したイベント (内部でタッチアップ) をテーブル ビュー コントローラーに接続できます。デリゲートしている場合は、テーブル ビュー コントローラーのデリゲート。selectRowAtIndexPath:animated:scrollPosition:実際に行を選択する必要がある場合は、ボタンが押されたときにプログラムで行を呼び出して選択できます。

于 2013-10-12T15:43:44.663 に答える
0

呼び出すのではなく、タッチされたときにトリガーdidSelectRowAtIndexPathするアクションを作成することを検討しましたか? UIButtonに触れたときに何をしたいのか正確にはわかりませんUIButtonが、メソッド内で新しいView Controllerをプッシュしたいとしましょう。

nibまたはを使用していてstoryboardUITableViewインスタンスが に属している場合、次のようなアクションにUITableViewController接続できます。UIButton

-(IBAction)buttonTapped:(id)sender {

     NewViewController *newViewController = [[NewViewController alloc] init];
     [newViewController setSomeProperty:property];
     [[self navigationController] pushViewController:newViewController animated:YES];
}

nibまたはを使用していない場合は、メソッドまたは他の場所でプログラムでstoryboardアクションを に接続できます。UIButtoninit

于 2013-10-12T16:01:13.370 に答える