ios—scrollView中图片的循环播放
1 @interface ZYViewController () 2 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 3 @property (weak, nonatomic) IBOutlet UIPageControl *pageControl; 5 @end 6 #define imageViewWidth 300 7 #define imageViewHeight 130 8 @implementation ZYViewController 9 10 - (void)viewDidLoad 11 { 12 13 // 思路:在原来图片的基础的前面和后面增加两个图片,比如原来有5张图片 1-2-3-4-5,放在scrollView中,那么要在1号图片前加入5号图片,在五号图片后加入1好图片 ,即 5-1-2-3-4-5-1,有7张图片在scrollView中。 14 15 [super viewDidLoad]; 16 17 self.scrollView.contentSize = CGSizeMake(imageViewWidth * 7, 130); 18 19 // 先向scrollView添加5号图片 20 UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"img_05"]]; 21 CGFloat imageViewX = 0; 22 imageView.frame = CGRectMake(imageViewX, 0 , imageViewWidth, imageViewHeight); 23 [self.scrollView addSubview:imageView]; 24 25 // 后向scrollView中添加1-2-3-4-5号图片 26 for (int i = 1; i < 6; i++) { 27 UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"img_%02d",i]]]; 28 CGFloat imageViewX = i * imageViewWidth; 29 30 imageView.frame = CGRectMake(imageViewX, 0, imageViewWidth, imageViewHeight); 31 32 [self.scrollView addSubview:imageView]; 33 } 34 35 // 最后添加1号图片 36 UIImageView *imageView2 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"img_01"]]; 37 CGFloat imageView2X = 6 * imageViewWidth; 38 imageView2.frame = CGRectMake(imageView2X, 0 , imageViewWidth, imageViewHeight); 39 [self.scrollView addSubview:imageView2]; 40 41 // 加载完毕就显示的是1号图片,实际是scrollview中得第二张。 42 self.scrollView.contentOffset = CGPointMake(300, 0); 43 self.scrollView.pagingEnabled = YES; 44 self.scrollView.bounces = YES; 45 self.scrollView.delegate = self; 46 47 // 分页 48 self.pageControl.numberOfPages = 5; 49 self.pageControl.currentPage = 0; 50 self.pageControl.currentPageIndicatorTintColor = [UIColor redColor]; 51 self.pageControl.pageIndicatorTintColor = [UIColor grayColor]; 55 }
1 /** 2 * 当scrollView减速停止的时候开始执行,在该方法中判断该显示第几张图片 3 */ 4 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 5 { 6 7 CGPoint currentOffSet = self.scrollView.contentOffset; 8 ZYLog(@"%@ ",NSStringFromCGPoint(currentOffSet)); 9 10 CGFloat num = currentOffSet.x / imageViewWidth; 11 ZYLog(@"num = %f",num); 12 // 设置页码 13 self.pageControl.currentPage = num - 1; 14 // num = 0 表示第一个5号图片显示到屏幕上,表示用户想看最后一张图片,即第二个5号图片 15 if (num == 0 ) { 16 [self.scrollView setContentOffset:CGPointMake(5 * imageViewWidth, 0)]; 17 18 self.pageControl.currentPage = 4; 19 } 20 else if (num == 6) // num = 6 表示第二个1号图片显示到屏幕上,表示用户想看第一张图片即第一个1号图片 21 { 22 [self.scrollView setContentOffset:CGPointMake(1 * imageViewWidth, 0)]; 23 24 self.pageControl.currentPage = 0; 25 } 26 27 }
com.nigo
浙公网安备 33010602011771号