我想要做的是构建一个包含大量图像的UIScrollView,问题是我不想立即将所有图像加载到滚动视图以解决性能问题,所以如果有人可以建议的话并帮我构建一个UIScrollView,它可以在运行时添加图像,例如当我向左滚动时,我得到图像,下一个图像在需要时分配,分页。
答案 0 :(得分:1)
使用此委托方法添加新图像。
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
如果用户拖动,//调用手指。如果后续继续移动,则减速为真
答案 1 :(得分:1)
您可以实施UIScrollViewDelegate
并使用其方法,例如
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
告诉您滚动视图中的任何偏移更改,然后您可以在运行时加载应该在该偏移处出现的任何图像。为此,您必须跟踪当前偏移量和滚动视图的页面。
答案 2 :(得分:0)
查看Apple的PageControl示例代码 这可能是一个很好的起点
答案 3 :(得分:0)
- (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];
}