ios uiscrollview与pagingenabled之间uiimageviews如何检测哪一个是在屏幕上/可见

问题描述:

所以我有一个UIScrollview滚动水平分页通过一堆不同的UIImageViews包含用户头像。但是,我只想从它们实际显示在屏幕上的URL IFF中加载化身(一次显示4个,但我可以像30或更少或更少滚动)。 有没有办法检测哪个UIImageView /它在哪个页面上?或者是否有人对我应该如何解决这个问题有任何一般性建议或想法?预先感谢您。ios uiscrollview与pagingenabled之间uiimageviews如何检测哪一个是在屏幕上/可见

- (空)scrollViewDidScroll:(UIScrollView的*)滚动视图{

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
     CPoint offset = scrollView.contentOffset; 
     int index = offset.x/pageWidth; 
     switch (index) { 
      case 0: 
       //first ImageView 
       break; 
      case 1: 
       //second ImageView 
       break; 
      default: 
       break; 
     } 
    } 

,或者如果你标记您的imageViews(从1开始),您可以通过检索它们:

- (空)scrollViewDidScroll:(UIScrollView的*){滚动视图

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
    CPoint offset = scrollView.contentOffset; 
    int index = offset.x/pageWidth; 
    UIImageView *visibileImageView = (id)[scrollView viewWithTag:index+1]; 
} 

您可以使用scrollViewDidScroll检测在任何点如果你使用模数的位置:

int index = (offset.x - offset.x % pageWidth)/pageWidth; 
+0

我没有这些图像视图的全局引用,但这绝对让我在正确的方向。我将有一个所有图像视图的数组,然后开始加载他们的URL根据你刚刚提供给我的!谢谢! – 2012-07-13 19:15:49

+2

@NathanFraenkel如果你正在循环中创建你的imageViews,你可以用[imageView setTag:i]来标记它们;并在稍后使用[scrollView viewWithTag:index + 1]检索它们; – 2012-07-13 19:17:37