0

私のニーズのために、 UITableView を UISCrollView の下に直接追加しました:

--- メイン UIView

-------- UITableView

-------- UIScrollView

したがって、スクロールビューをスクロールすると、テーブルビューのコンテンツオフセットが変更されます。それは完全に機能します。しかし、セルを選択しようとすると、デリゲート メソッドをキャッチできません。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

何か特別なことはありますか?UIScrollView をサブクラス化して実装しようとしました:

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

動作しますが、UIScrollView をスクロールできません ...

4

1 に答える 1

2

これを試して、

-(void)handleSingleTap:(UILongPressGestureRecognizer *)gestureRecognizer{
    CGPoint p = [gestureRecognizer locationInView:myScroll];
    NSIndexPath *indexPath = [myTable indexPathForRowAtPoint:p];
    [myTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    [self tableView:myTable didSelectRowAtIndexPath:indexPath];
}

UITapGestureRecognizer を使用する必要があります...

UITapGestureRecognizer *tpgr = [[UITapGestureRecognizer alloc]
                                initWithTarget:self action:@selector(handleSingleTap:)];
tpgr.numberOfTapsRequired = 1;
[myScroll addGestureRecognizer:tpgr];
于 2013-02-05T09:20:18.377 に答える