Родительский UIScrollView обнаруживает прикосновения дочернего UIView - PullRequest
0 голосов
/ 17 сентября 2010

В основном ...

У меня есть подкласс UIScrollView, в который вы также можете добавить цель и селектор, которые запускаются, если в представлении обнаруживается событие касания. Я использую представление прокрутки в качестве галереи изображений, а касание в представлении прокрутки используется для затухания компонентов HUD (UItoolBar и т. Д.):

@implementation TouchableScrollView

- (void)addTarget:(id)_target withAction:(SEL)_action
{
    target = _target;
    action = _action;
    shouldRun = NO;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    shouldRun = YES;
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    shouldRun = NO;
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    if(shouldRun)
    {
        shouldRun = NO;
        [target performSelector:action];
    }
}

@end

Затем у меня есть другой пользовательский UIView, добавленный в качестве подпредставления к этому, который имеет следующий набор (с обоими, с которыми я поиграл):

self.userInteractionEnabled = YES;
self.exclusiveTouch = YES;

и использует следующее для запуска анимации:

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

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

Пожалуйста, помогите, я полностью застрял?!

1 Ответ

0 голосов
/ 17 сентября 2010

лучше использовать это в пользовательском классе ScrollView

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event<br> if (!self.dragging) { [self.nextResponder touchesEnded: touches withEvent:event]; }<br> [super touchesEnded: touches withEvent: event];

self.nextResponder - это подвиды scrollView.поэтому событие other, а затем перетаскивание (прокрутка) будет обрабатываться вашим основным viewController.в главном контроллере View наследуют метод сенсорного события.там вы можете проверить сенсорное событие для определенного вида или изображения.

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