GestureRecogniser и отключение жеста перетаскивания UIView в UIScrollView - PullRequest
3 голосов
/ 18 ноября 2011

Недавно у меня возникла проблема.Как отключить прокрутку в определенной области UIScrollView, особенно в области, занимаемой UIView или подпредставлением.Я много рассказывал о создании подклассов и других длинных подходах для решения этой проблемы.Но недавно я решил эту проблему более простым способом без создания подклассов:

UIPanGestureRecognizer *panrecognizer = [[UIPanGestureRecognizer alloc] init];

, а затем

[panrecognizer setCancelsTouchesinView:NO];
[mySubViewInScroll addGestureRecognizer:panrecognizer];

Я создал UIPanGestureRecognizer без переданного ему Action, а затем добавил распознаватель впросмотр в скроллере.Таким образом, жесты на представлении будут захвачены, но явно не обработаны представлением или суперпредставлениями, потому что мы передали объекту никакое действие.Вопрос в этом.Это правильный подход для решения этого типа проблемы или лучше сделать иначе.Я имею в виду, что Apple примет такой вид приложений с таким подходом?

Ответы [ 2 ]

0 голосов
/ 31 августа 2012

попробуйте переписать ScrollView

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

чтобы вернуть чи

0 голосов
/ 23 декабря 2011

По сути, я думаю, что это, даже если не самое лучшее, является наиболее практичным решением… поскольку возиться с классами и создавать подклассы для достижения лишь частичной блокировки прокрутки экрана, кажется очень странным.Итак, давайте посмотрим, примет ли Apple такое решение ...

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