TTScrollView с вложенным UIScrollView - PullRequest
0 голосов
/ 15 января 2010

Я хочу, чтобы отображались две страницы: одна содержит изображение, его нельзя прокручивать, так как изображение хорошо умещается на экране. Второй - более длинный текст, который нужно прокручивать вертикально. Я попробовал классический подход большого UIScrollView, где я просто изменяю смещение значения x, но это оставляет меня с проблемой, что изображение как бы потеряно, и пользователь может прокрутить вниз, а также перетащить ScrollView по диагонали, который выглядит очень не как iPhone.

Итак, я обратился к Three20 и реализовал подход с его TTScrollView. На одной странице я просто отображаю изображение, которое отображается, а на другой странице я вкладываю UIScrollView с текстом. Это хорошо работает, если вы начинаете с изображения и переключаете страницы в ScrollView. Однако после этого вы больше не можете переключаться обратно, поскольку UIScrollView не передает никакие сенсорные события в родительский класс (который будет TTScrollView). Есть некоторые методы, которые вы можете реализовать, чтобы получить прикосновения, которые произошли (touchesShouldBegin: (NSSet *) затрагивает событиеEvent: (UIEvent *) inContentView: (UIView *) view), но мне не удалось заставить их работать и не смог найдите любой метод в TTScrollView, чтобы он все равно прокручивал одну или несколько страниц назад.

Кто-нибудь испытывал такую ​​же проблему и знает решение? Что вы должны делать, если у вас есть несколько страниц, содержание которых не имеет одинаковую длину?

Я рад любой подсказке, я работаю над этим уже несколько часов.

1 Ответ

0 голосов
/ 06 ноября 2010

Вы можете передать прикосновения к его суперпредставлению:

-(void) touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view{
    if([self.superview respondsToSelector:@selector(touchesShouldBegin:withEvent:inContentView:)]){
       [self.superview performSelector:@selector(touchesShouldBegin:withEvent:inContentView:) withObject:touches withObject:event withObject:view];
    }
}

Я попытаюсь сделать то же самое. Я дам вам знать, если попробую.

...