UIWebView не будет прокручиваться со сложенными представлениями, подпредставлениями - PullRequest
0 голосов
/ 08 апреля 2011

Я работаю над приложением, которое динамически создает множество стеков, и у меня изначально были проблемы с обработкой событий, описанные здесь . Этот пост решил большинство моих проблем, но у меня все еще есть одна проблема. Когда пользователь нажимает на сводку элемента RSS-канала, я создаю почти полноэкранный веб-вид с помощью всего одной кнопки «Закрыть». Кнопка закрытия работает, но веб-просмотр отказывается прокручивать. Я использую вариант кода, описанного в приведенной выше ссылке, который предназначен для работы с "экранами" и "гаджетами" на тех экранах, где экраны всегда имеют разрешение 1024x768, но никогда не требуют обработки событий, кроме других представлений и кнопок на этих экранах. иметь дело с событиями. «Экран» имеет базовый шаблон, который никогда не меняется, и другой «экран» сверху, который действительно изменяется. Код для обработки события «гаджет»:

@implementation ContainerView


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

for (int i=self.subviews.count-1; i >= 0; i--) {
    UIView *view = [self.subviews objectAtIndex:i];

    BOOL isContainerView = [view isMemberOfClass:[ContainerView class]];
    if (isContainerView) {
        return [super hitTest:point withEvent:event];
    }
    else {
        CGPoint viewPoint = [view convertPoint:point fromView:self];
        if ([view pointInside:viewPoint withEvent:event]) {
            return view; 
        }
    }
}

return nil;
}

@end

Это правильно отправляет события «Btn 1» и «Btn 2» (см. Диаграмму). Я также вижу, что этот же код возвращает мой UIWebVIew, когда я пытаюсь его прокрутить, но он все еще не прокручивается. Ниже приведена схема компоновки представлений:

схема

Может быть, прокрутка UIWebView обрабатывается особым образом, чтобы обойти взлом HitTest?

1 Ответ

0 голосов
/ 16 апреля 2011

Я отправил письмо в службу поддержки Apple об этом, и все, что они действительно могли сказать, было: «UIWebView делает много пользовательских обработок касаний, что делает его неуловимым для ловли с помощью hitTest». Итак, если у вас есть такая ситуация и вы хотите использовать это решение для переопределения hitTest, не ожидайте, что оно будет работать для UIWebView. В некоторых случаях мне, вероятно, придется внести некоторые изменения в дизайн, чтобы не складывать мои представления таким образом.

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