Вопрос

у меня есть UIView который содержит А. UIScrollView и я хочу иметь возможность захватить событие «Touch Down» в UIView в любое время пользовательские краны на UIScrollView.

Я пытался включить все Touchesbegan / Ended / отмененные обработчики в моем UIViewController но ни один из них не уволен при наступлении внутри UIScrollView содержащийся в главном UIView.

Какой лучший способ сделать это?

Это было полезно?

Решение

В UIView реализуйте TouchesBegan:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    // assign a UITouch object to the current touch
    UITouch *touch = [[event allTouches] anyObject];

    // if the view in which the touch is found is myScrollView
    // (assuming myScrollView is the UIScrollView and is a subview of the UIView)
    if ([touch view] == myScrollView) {
        // do stuff here
    }
}

Сбочная Примечание. Убедитесь, что userInteraccedenabled установлен на да в UIView.

Другие советы

Вы также можете реализовать hitTest:withEvent: В вашем подклассе UIView. Этот метод вызывается, чтобы определить, какой субвезонный должен получать сенсорное событие. Итак, здесь вы можете просто отслеживать все события, проходящие через ваш вид, не скрывают некоторые события из подзлогов. В этом случае вам может не потребоваться отключить взаимодействие пользователя для вашего ScrollView.

Подробнее об этом методе в UIView Ссылка класса.

Вы также можете добавить распознатель жест в ваш руководстве. Например, жест Tap Tap Если вам нужно активировать / деактивировать вещи, такие как кнопки, накладывающие вид прокрутки:

self.tap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTap:)] autorelease];
tap.numberOfTapsRequired = 1;

["containerView" addGestureRecognizer:tap];

Жесты сохраняют взаимодействие прокрутки

Вам необходимо отключить взаимодействие пользователя с просмотром прокрутки как таковой ...

scrollView.userInteractionEnabled = NO;

После отключения служба UiscrollView's Superiew получает событие TouchesBegan.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top