Перехватить UIControlEventTouchUpInside в hitTest: withEvent: - PullRequest
1 голос
/ 12 сентября 2011

Я следовал этому замечательному учебнику , и мне наконец-то удалось реализовать интерфейс с прокруткой из 3 независимых строк.

У меня осталась проблема, поскольку ключом этого урока является использование метода:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{
    NSLog(@"in hitTest");
    if ([self pointInside:point withEvent:event]) {
        return _scrollView;
    }
    return nil;
}

, чтобы справиться с прокруткой даже вне области просмотра прокрутки. На самом деле мои строки заполнены UIButton, а их события TouchUpInside перепутаны с событиями попаданий. Есть ли способ заставить этот метод распознавать эти события и отклонять их, позволяя им распространяться на законных делегатов?

1 Ответ

2 голосов
/ 02 декабря 2011

Вероятно, вам следует реализовать метод -hitTest:withEvent: следующим образом:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
  UIView *superView = [super hitTest:point withEvent:event];

  if (superView == self)
    return _scrollView;

  return superView; 
}

Это позволит взаимодействовать внутри подпредставлений UIScrollView.

...