Iphone 将动态图像加载到UIScrollVIew
我想做的是构建一个包含大量图像的UIScrollView,问题是我不想因为性能问题一次将所有图像加载到滚动视图,因此如果有人可以建议并帮助我构建一个UIScrollView,它可以在运行时添加图像,例如,当我向左滚动时,我会得到一个图像,并在需要时分配下一个图像,继续分页。使用此委托方法添加新图像Iphone 将动态图像加载到UIScrollVIew,iphone,objective-c,xcode,uiscrollview,Iphone,Objective C,Xcode,Uiscrollview,我想做的是构建一个包含大量图像的UIScrollView,问题是我不想因为性能问题一次将所有图像加载到滚动视图,因此如果有人可以建议并帮助我构建一个UIScrollView,它可以在运行时添加图像,例如,当我向左滚动时,我会得到一个图像,并在需要时分配下一个图像,继续分页。使用此委托方法添加新图像 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; //如果用
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
//如果用户拖动,则在竖起手指时调用。如果它以后继续移动,则减速为真您可以实现
UIScrollViewDelegate
并使用其方法,如
-(void)scrollViewDidScroll:(UIScrollView*)scrollView代码>
这将告诉您滚动视图中的任何偏移更改,然后您可以在运行时加载该偏移处显示的任何图像。为此,您必须跟踪当前偏移量和滚动视图的页面。查看苹果的示例代码
这可能是一个很好的起点我成功了,我发布了一个答案,collectionViews已经做了很多,不要重新发明轮子。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
float currPos = scroll.contentOffset.x;
BOOL movingRight = ( currPos / scroll.frame.size.width ) > 1 ? YES : NO ;
if (movingRight) {
NSLog(@"RIGHT");
[photo2 setImage:[UIImage imageNamed:@"22.jpg"]];
photo2.frame = CGRectMake(scroll.frame.size.width * 2, 0, scroll.frame.size.width, scroll.frame.size.height);
}else{
NSLog(@"LEFT");
[photo2 setImage:[UIImage imageNamed:@"33.jpg"]];
photo2.frame = CGRectMake(0, 0, scroll.frame.size.width, scroll.frame.size.height);
}
//NSLog(@"%f",currPos);
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
UIImage *img = [photo1 getImage];
[photo1 setImage:[photo2 getImage]];
[self.scroll scrollRectToVisible:CGRectMake(self.scroll.frame.size.width, 0, self.scroll.frame.size.width, self.scroll.frame.size.height) animated:NO];
[photo2 setImage:img];
}