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;
我没有这些图像视图的全局引用,但这绝对让我在正确的方向。我将有一个所有图像视图的数组,然后开始加载他们的URL根据你刚刚提供给我的!谢谢! – 2012-07-13 19:15:49
@NathanFraenkel如果你正在循环中创建你的imageViews,你可以用[imageView setTag:i]来标记它们;并在稍后使用[scrollView viewWithTag:index + 1]检索它们; – 2012-07-13 19:17:37