TTScrollView с вложенным UIScrollView

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

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

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

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


person Robin    schedule 14.01.2010    source источник


Ответы (1)


Вы можете передать штрихи своему супервизору:

-(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];
    }
}

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

person Robert    schedule 06.11.2010