UIScrollView 實現圖片自動輪轉

jopen 8年前發布 | 9K 次閱讀 iOS開發 移動開發

//
//  ViewController.m
//  圖片自動輪轉
//
//  Created by dc0061 on 15/12/21.
//  Copyright ? 2015年 dc0061. All rights reserved.
//

import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate> {     UIScrollView _scrollview;     UIImageView _imgae;          //NSTimer時間間隔比較大(幾秒)   CADisplayLink時間間隔比較小(0.0幾秒)     NSTimer _timer;     UIPageControl _page; } @end

@implementation ViewController

- (void)viewDidLoad {     [super viewDidLoad];     _scrollview =[[UIScrollView alloc]initWithFrame:CGRectMake(0, 10, 375, 250)];     _scrollview.delegate=self;     [self.view addSubview:_scrollview];     for (int i=1; i<7; i++) {         _imgae =[[UIImageView alloc]initWithFrame:CGRectMake(375(i-1), 10, 375i, 250)];         _imgae.image=[UIImage imageNamed:[NSString stringWithFormat:@"%i",i]];         [_scrollview addSubview:_imgae];     }     //設置偏移量,不需要豎著偏移,所以不需要設置數據     _scrollview.contentSize=CGSizeMake(3756, 0);     //實現scrollview的分頁顯示,當允許分頁時,scrollview會按照自身寬度作為一頁來開始分頁     _scrollview.pagingEnabled=YES;     //隱藏水平滾動指示器     _scrollview.showsHorizontalScrollIndicator=NO;     //添加分頁顯示點     _page=[[UIPageControl alloc]initWithFrame:CGRectMake(200, 270, 150, 20)];     _page.numberOfPages=6;//設置頁碼的總數     _page.currentPage=0;//設置當前頁,從0開始          _page.currentPageIndicatorTintColor=[UIColor redColor];//設置當前頁點的顏色     _page.pageIndicatorTintColor=[UIColor blueColor];//設置點的顏色     [self.view addSubview:_page];     //創建一個計時器     _timer=[NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(jishi) userInfo:nil repeats:YES]; } //scrollview代理滾動事件 - (void) scrollViewDidScroll:(UIScrollView )scrollView{     //設置UIPageControl當前位置     CGFloat x=scrollView.contentOffset.x+375.0/2.0;//當圖片滾動一半之后,就修改UIPageControl的值     _page.currentPage= x/375.0; } - (void) jishi{     NSInteger page=_page.currentPage;//得到pagecontrol的當前頁碼     //判斷是否是最后一頁     if (page==5) {         page=0;     }else{         page++;     }     //設置新的偏移值     CGFloat offsetX=page*_scrollview.frame.size.width;     [_scrollview setContentOffset:CGPointMake (offsetX,0) animated:YES]; }

- (void) scrollViewWillBeginDragging:(UIScrollView )scrollView{     //方法一 //    [_timer invalidate];//停止計時器:這個方法停止的計時器,就不可以在重用下次必須創建新的 //    _timer=nil;//上面方法調用后,這個計時器已經廢掉了,所有可以直接設置成nil     //方法二    : 關閉計時器     [_timer setFireDate:[NSDate distantFuture]]; } - (void) scrollViewDidEndDragging:(UIScrollView )scrollView willDecelerate:(BOOL)decelerate{     //方法一 //    _timer=[NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(jishi) userInfo:nil repeats:YES];     //方法二    : 開啟計時器     [_timer setFireDate:[NSDate distantPast]]; }

- (void)didReceiveMemoryWarning {     [super didReceiveMemoryWarning];      }

@end</pre>


來自: http://my.oschina.net/u/2287505/blog/552457

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!