0

UITableViewControllerのUITableViewCellからTouchesBeganを受信して​​、ユーザーがセルに触れたときを知るにはどうすればよいですか?

4

2 に答える 2

3

セルに触れると、セルが強調表示されます。setHighlighted:のサブクラスでオーバーライドして、 UITableViewCellYES(ユーザーが触れている)またはNO(ユーザーが持ち上げられている)に変わったときの外観を調整してみてください。

(オーバーライドtouchesBegan:withEvent:も機能しsetHighlighted:ますが、触れなくなったときにキャプチャするために使用する方が簡単です。それ以外の場合は、オーバーライドする必要がありますtouchesEnded:withEvent:touchesCancelled:withEvent:

于 2012-06-26T00:47:11.613 に答える
1

ユーザーがセルをタップしたときにトリガーされるイベントを探しているが、それが正式に選択される前に、次のUITableViewDelegate方法があります。

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath

ドキュメントから:

このメソッドは、ユーザーが行に触れてから指を離すまで呼び出されません。タッチダウンで強調表示されますが、その行はそれまで選択されません。UITableViewCellSelectionStyleNoneを使用して、タッチダウン時のセルのハイライトの表示を無効にすることができます。このメソッドは、テーブルビューが編集モードの場合(つまり、テーブルビューの編集プロパティがYESに設定されている場合)は呼び出されません。ただし、テーブルビューで編集中の選択が許可されている場合(つまり、テーブルビューのallowsSelectionDuringEditingプロパティがYESに設定)。

編集

求めている動作を実現するには、メソッドをサブクラスUITableViewCell化して実装する必要があると思います

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

イベント処理の詳細については、すべてのUIViewsサブクラスのUIResponderクラスリファレンスを参照してください。

于 2012-06-25T18:53:21.317 に答える