查看网上实现的图片轮播大都需要多个imageView,分享一个比较简洁的实现,希望大家批评指教,也希望能帮助到跟我一样的小白
github地址:https://github.com/Swellyhowl/lmiOS
简介:
代码有一个scrowView和3个imageView,图片来自于本地,可能在实际的应用中还有很多弊端,比如图片的命名方式,图片可能来自于网路等,这些会在以后的项目跟大家一起学习
思路:
为scrowView添加3个imageView,分别为leftImageView,middleImageView和rightImageView。
1. 让middleImageView显示在屏幕上,默认显示第一张图片,(假设图片名字分别为1.png,2.png...5.png),即: middleImageview-->1.png,则rightImageView-->2.png ,那leftImageView-->leftImageview
2. 每滑动一次,都要将scrowview的contentOffset设置为两个Imageview的宽度,实现一个滚动的效果,此时要注意,还要在滚动结束后,重新将contentOffset重新调整为一个ImageView的宽度,用来实现下一次的滚动效果,同时还要把图片进行重新调整
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
NSLog(@"DidEndScrollingAnimation");
[self reloadImgs];
[self.scrw setContentOffset:CGPointMake(offsetX, 0) animated:NO];
}
//重新加载图片,重新设置三个imgView
- (void) reloadImgs{
int currentIndex = (int)self.pageC.currentPage;
NSLog(@"currentIndex%d",currentIndex);
int preIndex = (currentIndex + 4) % 5;
int nextIndex = (currentIndex + 1) % 5;
[self.imgViewLeft setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d",preIndex]]];
[self.imgViewMiddle setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d",currentIndex]]];
[self.imgViewRight setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d",nextIndex]]];
}
3. 这样就可以实现图片轮播,具体实现看github代码
其实还可以将scrowview和imageView进行自定义,这样可以设置多样的风格,也可以根据自己的需要设置不同的需求,比如添加一个向左向右的箭头之类的,后面就继续学习,进行改进,希望大神能多给小白一点建议