iOS: жест смахивания внутри подпредставления - PullRequest
1 голос
/ 28 декабря 2011

Я должен реализовать жест смахивания внутри подпредставления;это подпредставление является косым представлением

view1.transform = CGAffineTransformMakeRotation( ( 54 * -M_PI ) / 180 );

Я хочу реализовать жест смахивания внутри этого представления, если это произойдет, я должен иметь NSLog, который говорит, что смахивание происходит внутри этого представления, возможно ли это?

1 Ответ

5 голосов
/ 29 декабря 2011

Как и в любом другом UIView, можно добавить распознаватель жестов:

UISwipeGestureRecognizer *swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)];
[view1 addGestureRecognizer:swipeGestureRecognizer];

Проблема заключается в свойстве UISwipeGestureRecognizer 'direction'.Документация Apple об этом свойстве:

Допустимое направление пролистывания для этого распознавателя жестов.

Поскольку вид повернут, направления вращаются вдоль.Если представление поворачивается на 180 градусов и пользователь проводит пальцем вправо, распознаватель жестов видит его как движение влево.Я бы предложил использовать вид обертки, в который должен быть помещен распознаватель жестов.Попробуйте это:

UIView *view2 = [[UIView alloc] initWithFrame:view1.frame];
[view1.superview addSubview:view2];

view2.backgroundColor = [UIColor clearColor];
UISwipeGestureRecognizer *swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)];
[view2 addGestureRecognizer:swipeGestureRecognizer];

Недостатком является то, что внутри view2 есть определенные области, но за пределами view1, которые будут реагировать на распознаватель жестов.

...