Отправить прикосновения через UIView с UIPanGestureRecognizer - PullRequest
0 голосов
/ 12 декабря 2018

По сути, я хочу обнаруживать жесты панорамирования вверх / вниз в UIView над табличным представлением, в то же время прокручивая табличное представление как обычно.

Я попытался реализовать pointInside и gestRecognizer: shouldReceiveTouch :, ноони оба обходят распознаватель жестов при использовании.

Есть ли способ отправить одно касание в два вида или отправить касание после его обработки?Или общий способ отследить жесты, не перехватывая их?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Добавьте свой собственный UIPanGestureRecognizer к вашему Tableview.

Сделайте так, чтобы они жили вместе, возвращая YES в - (BOOL) gestRecognizer: (UIGestureRecognizer *) gestRecognizer notRecognizeSim ОдновременноWithGestureRecognizer * (UIGestureRecognizer *

)
//setup
                        UITableView* tableview=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 400, 500)];
                        tableview.dataSource=self;
                        [self.view addSubview:tableview];

                        UIPanGestureRecognizer* pangr=[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(someMethod:)];
                        pangr.delegate=self;
                        [tableview addGestureRecognizer:pangr];

            .
            .
            .

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{

                    return YES;
                }

 -(void)someMethod:(UIPanGestureRecognizer*)sender{
            CGFloat velocityX = ([sender velocityInView:self.view].x);
            CGFloat velocityY = ([sender velocityInView:self.view].y);
            NSLog(@"pannig %f %f", velocityX, velocityY);
        }

Отлично работает в моем тесте.Если вам действительно нужен UIView над таблицей, вы можете просто установить его там и установить userInteractionEnabled=NO

0 голосов
/ 13 декабря 2018

Поскольку UITableView является преемником UIScrollView, который реагирует на собственные внутренние жесты.Я думаю, что в этом случае не удастся реализовать жесты вверх / вниз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...