动态加载内容到滚动视图,而滚动
问题描述:
我面临一个问题,我的滚动视图(水平,启用分页,可以是50页或更多) 我想要做的是,加载内容到scrollView的内容 - 视图用户正在水平滚动(因为最初加载所有内容需要很长的时间)。动态加载内容到滚动视图,而滚动
我做的是: 每次scrollViewDidScroll发生我检查是否需要加载额外的内容。如果是,则会创建一个新的“页面”并将其添加到正确位置的scrollViews contentview中。
问题是: 虽然它预载了一个页面,但“滚动移动”却受到干扰。屏幕不完全闪烁,但滚动动画的平滑度受到严重影响。
的代码是:
- (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];
}
}
}
可能我要在这里做一些设计变更。我相信你们当中有些人在过去面临类似的问题。 任何帮助/窍门或链接是极大的赞赏提前
感谢您的帮助
SAM
答
好吧,我有点想出了一个变通方法,做的伎俩。
我改变了preLoadPageNumber-方法是这样的:
-(void)preLoadPageNumber:(NSNumber*)param
,只是因为我所说的辅助方法,从内ScrollViewDidScroll说helperMethod看起来是这样的:
-(void)performPreLoadAfterDelay
{
[self performSelector:@selector(preLoadPageNumber:) withObject:[NSNumber numberWithInt:self.currentPageIndex +1] afterDelay:0.001];
}
当滚动速度非常快(“空白”页面出现)时,从ScrollViewDidScroll方法内调用performSelector方法不起作用。 我真的不知道为什么,但helperMethod的技巧奏效。 Annimation现在很流畅,“空白页”问题消失了。