2011-07-20 221 views
-1

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

+0

我成功了,我张贴的答案 – user784625

回答

1

使用此委托方法添加新图像。

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; 

//如果用户拖动,手指向上调用。它是否会继续进行下去移动

1

减速是真的可以实现UIScrollViewDelegate和使用它的方法,如

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

,告诉你有关的任何抵消了滚动型的变化,然后你可以加载任何一个图像应该在运行时出现在该偏移处。为此,您将不得不跟踪当前偏移量和滚动视图的页面。

0

查找到苹果的PageControl示例代码 这可能是一个很好的起点

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

} 
+0

哥们,collectionViews已经做几乎所有的,不推倒重来。 – Can