将动态图像加载到UIScrollVIew

时间:2011-07-20 07:38:29

标签: iphone objective-c xcode uiscrollview

我想要做的是构建一个包含大量图像的UIScrollView,问题是我不想立即将所有图像加载到滚动视图以解决性能问题,所以如果有人可以建议的话并帮我构建一个UIScrollView,它可以在运行时添加图像,例如当我向左滚动时,我得到图像,下一个图像在需要时分配,分页。

4 个答案:

答案 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];

}