私はカスタムcell.theテーブルビューを持っている多くのセクションとrows.iに分割されているセル上のカスタムボタンがあります。今私はそのボタンをクリックするとセクション番号と行番号を取得したい。 あなたのtableViewのセルを選択すると、以下のメソッドが呼び出され、このカスタムセルのセクション番号と行番号ボタンをクリックしますか?
答えて
ビューコントローラでUIControlイベント処理メソッドを実装し、それをのハンドラとして設定する必要があります。ボタン。
[theCell.button addTarget: self
action: @selector(buttonPressed:withEvent:)
forControlEvents: UIControlEventTouchUpInside];
は、その後、あなたのイベントハンドラは次のようになります:あなたの
-tableView:cellForRowAtIndexPath:
関数の内部で、あなたのような何かをするだろう、すなわちユーザーが行上のボタンをタップしたときに呼び出されない
- (void) buttonPressed: (id) sender withEvent: (UIEvent *) event
{
UITouch * touch = [[event touches] anyObject];
CGPoint location = [touch locationInView: self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: location];
/* indexPath contains the index of the row containing the button */
/* do whatever it is you need to do with the row data now */
}
に関する任意のアイデア:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
セクション番号にアクセスするために:正しい内の行番号を(アクセスするためにint section = indexPath.section;
をセクション):int row = indexPath.row;
。彼らは行の背景自体をタップする場合にのみ呼び出されます。 –
のUITableView can convert a CGPoint coordinate into an indexPath:
-(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
の
いくつかの考え:
あなたはUITableViewCellのを見つけるまで、あなたがボタンのスーパー階層を反復処理することができ、その後、呼び出し - (NSIndexPath *)indexPathForCell:のUITableView上(のUITableViewCell *)のセル。
- (void)buttonClicked:(id)sender {
UIView *button = sender;
for (UIView *parent = [button superview]; parent != nil; parent = [parent superview]) {
if ([parent isKindOfClass: [UITableViewCell class]]) {
UITableViewCell *cell = (UITableViewCell *) parent;
NSIndexPath *path = [self.tableView indexPathForCell: cell];
// now use the index path
break; // for
}
}
}
ボタンを使用して、行を参照するインデックスを格納することもできます。これは1つの整数しか保持しないので、セクションが1つの場合や、行をフラットリストとして管理している場合に最も適しています。
UITableViewCellをサブクラス化して、ボタンをカプセル化することもできます。あなたのUITableViewCellは、ボタンイベントに応答して、イベントを自らの代理人に再ブロードキャストし、自分自身を渡します。イベントデリゲートは、UITableViewの - (NSIndexPath *)indexPathForCell:(UITableViewCell *)セルを呼び出して、インデックスパスを取得できます。
の追加は、あなたのUITableViewCell subclassToのインスタンス変数は、セルのインデックスパスを保存することができます。
NSIndexPath *myIndexPath;
あなたがセルを作成する場合:新しく作成されたにindexpathで
cellForIndexPath:
合格/リサイクルセル。
ボタンを押すと、セルのivarからインデックスパスを読み取るだけです。
- 1. section_id:nilセクション番号:1
- 2. ページ番号:ハイライト現在の番号ボタン
- 3. rmarkdownのあるセクション番号
- 4. スパーク、グループ番号の行番号
- 5. セル値を行番号と列番号として使用
- 6. Cakephp 2.8ページ番号のリンク番号はクリックできません
- 7. iphone UITestingボタン番号
- 8. 番号をクリックすると電話番号が表示されます
- 9. セクションとサブセクションに従った図番号
- 10. PHPとクリックしたボタンのインデックス番号を印刷
- 11. 番号を別の番号の桁で検索しますか?
- 12. データベース番号の自動番号付けまたはカスタム番号
- 13. 行番号と列番号で値を取得する
- 14. IND番号とNAN番号の違い
- 15. メモ帳のステータスバーに行番号と列番号を表示
- 16. ADDR2LINEは、1つの番号の行番号を報告しますか?
- 17. 行番号が
- 18. パス行番号
- 19. 行番号
- 20. 行番号が
- 21. クリックして内線番号のリンクをクリックしますか?
- 22. c#WPFのリッチテキストボックスの行番号と列番号
- 23. jaxb検証イベントロケータ - 検証エラーの行番号と列番号
- 24. 電話番号の番号を隠す
- 25. JQueryのページ番号 - ページ番号をクリックしてhref attrを削除する
- 26. rmarkdownセクションの番号付けの深さ
- 27. WinMergeの行番号
- 28. イベントビューアの行番号
- 29. BigQueryの行番号?
- 30. ビューの行番号
少し修正... [イベントのタッチ]は[イベントallTouches] – dizy
すべきです!これはまさに私が探しているものです...ありがとう.. – mshsayem