我正在尝试使用小图片实现uiscrollview。
我需要uiscrollview滚动完成后,每一端的最后一张图像都保留在中央,一边是空的。滚动完成后,最后一张图像保留在两侧。
我需要知道哪个图像位于scollview的中心,在其上应用阴影,
jugadorSlide.pagingEnabled = YES;
NSError *error = nil;
fotosJugadores = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: @"/Users/exular/Developer/GBC/exular/GBC/Caras/" error: &error];
NSInteger numberOfViews = [fotosJugadores count];
for (int i = 0; i < numberOfViews; i++) {
UIImage *myImage = [UIImage imageNamed:[fotosJugadores objectAtIndex:i]];
CGFloat yOrigin = i * myImage.size.width;
UIImageView *awesomeView = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, myImage.size.width, myImage.size.height)];
awesomeView.alpha = 0.5;
awesomeView.image = myImage;
[self.jugadorSlide addSubview:awesomeView];
awesomeView=nil;
}
jugadorSlide .contentSize = CGSizeMake(65 * numberOfViews,78);
jugadorSlide.layer.cornerRadius = 11;
jugadorSlide.layer.masksToBounds = YES;
非常感谢你的帮助。
答案 0 :(得分:1)
要允许第一个和最后一个图像位于中心,只需在第一个图像之前和最后一个图像之后添加一个空白区域。换句话说:在yOrigin
处开始65
并将65
添加到contentSize
宽度(我假设65
是您的图片宽度):
...
CGFloat yOrigin = i * myImage.size.width + 65;
...
jugadorSlide.contentSize = CGSizeMake(65 * numberOfViews + 65,78);
...
要找出中心的图像,请在UIScrollViewDelegate方法scrollViewDidEndDecelerating:
中添加以下内容。
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
int currentIndex = roundf(scrollView.contentOffset.x / 65) - 1;
UIImageView *currentImage = [scrollView viewWithTag:currentIndex];
}
要轻松获取currentImage,请在创建图像时为其添加标记:
...
awesomeView.tag = i;
...