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 }

 

posted @ 2014-06-13 00:41  delegate  阅读(340)  评论(0)    收藏  举报