2010-04-07 4 views
0

У меня возникла проблема с моим scrollview (горизонтально, пейджинг включен, может составлять 50 страниц или более) Что я хочу сделать, загрузите контент в контент-представление scrollView, пока пользователь прокручивается по горизонтали (потому что изначально загрузка всего содержимого занимает много времени).динамически загружая содержимое в scrollview при прокрутке

что я делаю: каждый раз, когда scrollViewDidScroll происходит, я проверяю, требуется ли загрузка дополнительного содержимого. в случае его создания создается новая «страница» и добавляется в содержание содержимого scrollViews в правильном положении.

проблема: что при предварительной загрузке страницы «движение прокрутки» нарушается. экран точно не мерцает, но плавность анимации прокрутки сильно страдает.

в коде, который является:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
[self preLoadPageNumber:self.currentPageIndex + 2];} 

-(void)preLoadPageNumber:(int)pageNumber{ 
NSMutableArray *tmpMovies; 
VoDPage *pageView; 

if(pageNumber < [self getAmountOfPages]) 
{  
    pageView = [pageViewControllers objectAtIndex:pageNumber]; 

    if((NSNull*)pageView == [NSNull null]) 
    { 
     tmpMovies = [[NSMutableArray alloc] initWithCapacity:6]; 

     for(int o = ((pageNumber) * 6); o < ((pageNumber+1)*6); ++o) 
     { 
      @try { 
       [tmpMovies addObject:[movies objectAtIndex:o]]; 
      } 
      @catch (NSException * e) { 
       break; 
      } 

     } 
     pageView = [[VoDPage alloc] initWithContent:tmpMovies andNavCtrl:navCtrl]; 
     pageView.view.frame = CGRectMake(((pageNumber) * 320)-8 , 0, 320, 332); 
     if(editModeEnabled) 
      [pageView enableEditMode]; 

     [scrollView addSubview:pageView.view]; 

     [pageViewControllers replaceObjectAtIndex:pageNumber withObject:pageView]; 
    } 
} 

}

вероятно, я должен внести некоторые изменения в дизайне здесь. Я уверен, что некоторые из вас столкнулись с аналогичными проблемами в прошлом. Любой помощь/Tipps или ссылка высоко оценила

заранее спасибо за вашу помощь

сэм

ответ

0

Ok я немного понял, обходной путь, который делает трюк.

я изменил метод preLoadPageNumber-, чтобы выглядеть следующим образом:

-(void)preLoadPageNumber:(NSNumber*)param 

просто потому, что я называю вспомогательный метод внутри ScrollViewDidScroll и сказал helperMethod выглядит следующим образом:

-(void)performPreLoadAfterDelay 

{

[self performSelector:@selector(preLoadPageNumber:) withObject:[NSNumber numberWithInt:self.currentPageIndex +1] afterDelay:0.001]; 

Вызов функцииВыбор из метода ScrollViewDidScroll не работает при прокрутке очень быстро (появляются «пустые» страницы). Я действительно не знаю, почему, но трюк с helperMethod работал. Annimation теперь гладкая, и проблема с пустой страницей исчезла.

Смежные вопросы