亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS05UIScrollView介紹圖片輪播器

2019-11-14 18:44:50
字體:
來源:轉載
供稿:網友

 

  • 移動設備的屏幕?大?小是極其有限的,因此直接展?示在?用戶眼前的內容也相當有限

  • 當展?示的內容較多,超出?一個屏幕時,?用戶可通過滾動?手勢來查看屏幕以外的內容

  • 普通的UIView不具備滾動功能,不能顯?示過多的內容

  • UIScrollView是?一個能夠滾動的視圖控件,可以?用來展?示?大量的內容,并且可以通過滾 動查看所有的內容 

  • 在IOS中UIScrollView這個控件還是比較常用和重要的。
  • 很多時候,我們想在UIScrollView正在滾動 或 滾動到某個位置 或者 停?止滾動 時做?一些 特定的操作
  • 要想完成上述功能,前提條件就是能夠監聽到UIScrollView的整個滾動過程

    • 當UIScrollView發?生?一系列的滾動操作時, 會?自動通知它的代理(delegate)對象,給

    它的代理發送相應的消息,讓代理得知它的滾動情況
    • 也就是說,要想監聽UIScrollView的滾動過程,就必須先給UIScrollView設置?一個代理

    對象,然后通過代理得知UIScrollView的滾動過程 

    // ?用戶開始拖拽時調?用
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
    // 滾動到某個位置時調?用
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView;
    // ?用戶結束拖拽時調?用
    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; 

     

    UIScrollView的常?見屬性

    • @PRoperty(nonatomic)CGPointcontentOffset; ? 這個屬性?用來表?示UIScrollView滾動的位置

    • @property(nonatomic)CGSizecontentSize;
    ? 這個屬性?用來表?示UIScrollView內容的尺?寸,滾動范圍(能滾多遠)

    • @property(nonatomic)UIEdgeInsetscontentInset;? 這個屬性能夠在UIScrollView的4周增加額外的滾動區域 

    2 介紹完UIScrollView的基本屬性,下面做一個小的圖片輪播器程序:
    2.1程序截圖如下圖。
     
    2.2這個程序上有5個圖,當滑動屏幕時,屏幕上的圖片也會跟著變化,同時導航按鍵也會跟著變動,同時如果不滑動屏幕時,每過兩秒,屏幕圖片也自己變化,程序就是這么個功能,在很多APP中可以??吹剑旅嬷v代碼。
     
    2.3 設計視圖,視圖比較簡單,只有一個Scroll View和一個page control,如下:
     
    2.4 視圖設計好以后,然后導入圖片到項目中,這里我們簡單點做就把圖片放到項目中Imagees.xcassets中。
    2.5 做完這些之后,然后就要寫代碼實現功能了,第1步,創建Scroll View和page control的屬性,如何創建屬性不講了。

    //Scroll View屬性

    @property (weak, nonatomic) IBOutlet UIScrollView *ScllView;

    //pageControl屬性

    @property (weak, nonatomic) IBOutlet UipageControl *PageControl;

    2.6 創建完視圖上的兩個控件的屬性后,我們就要開始讀取圖片保存然后保存到Scroll View中了,代碼如下:
     //創建UIImageView在Scrool view中的位置    //W.H,Y值對是一樣的,但每個UIImageView的X值就會不一樣了    CGFloat FloatW=self.ScllView.frame.size.width;    CGFloat FloatH=self.ScllView.frame.size.height;    CGFloat FloatY=0;        //這里5張圖片寫死了,循環所有圖片    //創建UIimageView,然后設置每個UIimageView的位置,    for (int i=0; i<imageCont; i++) {                UIImageView *imageView=[[UIImageView alloc] init];                //計算X值,        CGFloat FloatX=i*FloatW;            imageView.frame=CGRectMake(FloatX, FloatY, FloatW, FloatH);                NSString *imagename=[NSString stringWithFormat:@"img_0%i",i+1];        imageView.image=[UIImage imageNamed:imagename];                //把UIImageView增加到Scroll View中        [self.ScllView addSubview:imageView];            }
    View Code

    在這里最主要的就是要計算每個UIiamgeView的X值了,其實X值也簡單因為每個圖片的W值和Scroll View一樣,所以每個UIiamgeView的X值就可以*ScllView.frame.size.width值就可以了。

    2.7這樣我們就把圖片全部加到視圖上的Scroll View 中了,然后就要讓Scrool View里面的圖片可以滑動,要讓Scrool View里面的圖片可以滑動,我們就要用到代理,用到代理就要導入UIScrollViewDelegate,如下:

    @interface ViewController ()<UIScrollViewDelegate>

    導入完UIScrollViewDelegate后,然后設置Scrool View相對應的屬性:

    PagingEnabled這個分頁的屬性是每一次滑動都是滑動一整個圖片,讓屏幕只能顯示一張完整的圖片,

    同時設置視圖中page control控件的個數,當然這個個數和圖片的個數是一樣多的。

     //2.滾動視圖的內容的大小    self.ScllView.contentSize=CGSizeMake(FloatW *imageCont, 0);        //去掉水平指示器    self.ScllView.showsHorizontalScrollIndicator=NO;        //設置分頁    self.ScllView.pagingEnabled=YES;        //設置pageControl顯示的頁數    self.PageControl.numberOfPages=imageCont;

    2.8 做完這些,屏幕上的圖片就可能自由的滑動了,但有個小問題是屏幕上的page control這個控件不會當屏幕圖片變動時也跟著變動,

    這個如何實現呢?這個要在代理方法中來做,如下:

    //設置代理

        self.ScllView.delegate=self;

    //代理方法//代理自帶方法,視圖正在滾動的時候一直在執行-(void)scrollViewDidScroll:(UIScrollView *)scrollView{    CGFloat scrolViewW=self.ScllView.frame.size.width;            CGFloat pageCount=(self.ScllView.contentOffset.x+scrolViewW *0.5)/scrolViewW;        self.PageControl.currentPage=pageCount;}

    這樣,整個圖片播放器就OK了,下面再來做個定時播放功能,當程序起動時,自動播放,多的不說了,直接上所有代碼:如下

    #import "ViewController.h"#define imageCont 5@interface ViewController ()<UIScrollViewDelegate>//Scroll View屬性@property (weak, nonatomic) IBOutlet UIScrollView *ScllView;//pageControl屬性@property (weak, nonatomic) IBOutlet UIPageControl *PageControl;//定時器@property(strong,nonatomic)NSTimer *timer;@end@implementation ViewController//去掉手機最上面的狀態顯示-(BOOL)prefersstatusBarHidden{    return YES;}- (void)viewDidLoad{    [super viewDidLoad];        //創建UIImageView在Scrool view中的位置    //W.H,Y值對是一樣的,但每個UIImageView的X值就會不一樣了    CGFloat FloatW=self.ScllView.frame.size.width;    CGFloat FloatH=self.ScllView.frame.size.height;    CGFloat FloatY=0;        //這里5張圖片寫死了,循環所有圖片    //創建UIimageView,然后設置每個UIimageView的位置,    for (int i=0; i<imageCont; i++) {                UIImageView *imageView=[[UIImageView alloc] init];                //計算X值,        CGFloat FloatX=i*FloatW;            imageView.frame=CGRectMake(FloatX, FloatY, FloatW, FloatH);                NSString *imagename=[NSString stringWithFormat:@"img_0%i",i+1];        imageView.image=[UIImage imageNamed:imagename];                //把UIImageView增加到Scroll View中        [self.ScllView addSubview:imageView];            }     //2.滾動視圖的內容的大小    self.ScllView.contentSize=CGSizeMake(FloatW *imageCont, 0);        //去掉水平指示器    self.ScllView.showsHorizontalScrollIndicator=NO;        //設置分頁    self.ScllView.pagingEnabled=YES;        //設置pageControl顯示的頁數    self.PageControl.numberOfPages=imageCont;        //設置代理    self.ScllView.delegate=self;        [self addTime];}//創建定時器方法-(void)addTime{    self.timer=[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextPage) userInfo:nil repeats:YES ];        [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];}//移除計時器-(void)removeTime{    [self.timer invalidate];    self.timer = nil;}-(void)nextPage{    int page=0;        if(self.PageControl.currentPage==imageCont-1)    {        page=0;    }    else    {        page=self.PageControl.currentPage+1;    }    CGPoint point=CGPointMake(page *self.ScllView.frame.size.width, 0);        //設置Scroll View 要顯示的圖片    [self.ScllView setContentOffset:point animated:YES];    }//代理方法//代理自帶方法,視圖正在滾動的時候一直在執行-(void)scrollViewDidScroll:(UIScrollView *)scrollView{    CGFloat scrolViewW=self.ScllView.frame.size.width;            CGFloat pageCount=(self.ScllView.contentOffset.x+scrolViewW *0.5)/scrolViewW;        self.PageControl.currentPage=pageCount;}-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{    //會將計時器永久關掉    [self removeTime];}-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)d{       [self addTime];}@end
    View Code

     

     

     

     

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久一区二区| 亚洲无限乱码一二三四麻| 国产91免费观看| 国产在线999| 久久久噜噜噜久久中文字免| 欧美黑人狂野猛交老妇| 亚洲国产精品成人精品| 668精品在线视频| 懂色aⅴ精品一区二区三区蜜月| 成人免费自拍视频| 久久久精品一区二区三区| 亚洲国产高清自拍| 久久久999精品视频| 国产欧美日韩最新| 国产成人在线精品| 17婷婷久久www| 777午夜精品福利在线观看| 欧美成人免费va影院高清| 久久精品夜夜夜夜夜久久| 一区二区三区视频在线| 亚洲影院在线看| 国产成人精品电影久久久| 久久久久久久爱| 日韩av不卡在线| 成人黄色av网| 欧美大片网站在线观看| 九色精品免费永久在线| 欧美大片免费观看在线观看网站推荐| 91最新国产视频| 久久777国产线看观看精品| 久久成人精品一区二区三区| 久久亚洲欧美日韩精品专区| 在线成人免费网站| 精品国产拍在线观看| 日本免费一区二区三区视频观看| 亚洲情综合五月天| 亚洲免费视频一区二区| 欧美午夜性色大片在线观看| 欧美大片在线影院| 在线电影欧美日韩一区二区私密| 亚洲女人天堂视频| 日韩在线观看免费全| 欧美韩国理论所午夜片917电影| 日本精品中文字幕| 亚洲国产成人在线视频| 亚洲视频在线视频| 国产亚洲精品久久久优势| 亚洲级视频在线观看免费1级| 日韩在线中文字| 91在线观看免费网站| 亚洲欧洲av一区二区| 美女999久久久精品视频| 亚洲一区二区三区四区视频| 国产福利成人在线| 亚洲免费高清视频| 成人乱色短篇合集| 欧美日韩国产激情| 亚洲护士老师的毛茸茸最新章节| 欧美久久精品一级黑人c片| 91精品啪aⅴ在线观看国产| 538国产精品视频一区二区| 日韩av影片在线观看| 成人午夜激情网| 中文字幕日韩欧美精品在线观看| 91久久综合亚洲鲁鲁五月天| 国产精品一区二区三区成人| 日韩国产高清污视频在线观看| 欧美电影免费看| 欧美在线精品免播放器视频| 国产精品女主播| 亚洲新中文字幕| 久久精品男人天堂| 欧美中文字幕第一页| 国产成人精品免高潮费视频| 午夜精品一区二区三区在线视频| 国产精品视频在线观看| 日韩中文在线不卡| 国产不卡一区二区在线播放| 国产精品精品久久久| 亚洲深夜福利网站| 伊人久久久久久久久久久| 亚洲欧美一区二区精品久久久| 欧美国产高跟鞋裸体秀xxxhd| 成人国产精品久久久久久亚洲| 中文字幕欧美日韩va免费视频| 色在人av网站天堂精品| 日本一区二区在线播放| 国产成人aa精品一区在线播放| 国产视频观看一区| 精品亚洲va在线va天堂资源站| 综合激情国产一区| 岛国av一区二区| 日韩av在线一区二区| 亚洲人成电影在线观看天堂色| 国产精品激情自拍| 91免费在线视频网站| 日韩一区二区av| 成人久久久久爱| 日韩av电影国产| 国产精品露脸av在线| 欧美激情一区二区三级高清视频| 亚洲aⅴ日韩av电影在线观看| 中文字幕亚洲综合久久筱田步美| 国产精品一区二区女厕厕| 国产91精品高潮白浆喷水| 在线成人激情黄色| 成人在线小视频| 精品亚洲一区二区三区在线观看| 亚洲精品一区av在线播放| 国产亚洲欧洲在线| 久久亚洲精品毛片| 久久久久久尹人网香蕉| 中国china体内裑精亚洲片| 欧美成人全部免费| 国产性猛交xxxx免费看久久| 欧美国产日韩中文字幕在线| 欧美成年人网站| 91精品视频观看| 中文字幕在线看视频国产欧美| 国产精品久久久久久搜索| 国产99久久久欧美黑人| 亚洲第一精品自拍| 欧美成人午夜激情| 精品亚洲va在线va天堂资源站| 国产成人亚洲综合91精品| 国产成人精品日本亚洲专区61| 亚洲自拍另类欧美丝袜| 日韩欧美成人网| 欧美国产亚洲视频| 国产一区二区三区丝袜| 欧美日韩性视频在线| 国产成人91久久精品| 日韩精品极品毛片系列视频| 自拍偷拍免费精品| 黄色一区二区三区| 亚洲第一二三四五区| 日韩av理论片| 欧美大胆a视频| 中文字幕日韩在线播放| 日韩av在线影视| 夜夜嗨av一区二区三区四区| 日韩电影中文字幕av| 国产精品综合不卡av| www.xxxx欧美| 久久av红桃一区二区小说| 国内精品久久久久| 成人看片人aa| 亚洲精品第一国产综合精品| zzjj国产精品一区二区| 中文字幕视频一区二区在线有码| 欧美另类xxx| 亚洲欧美精品伊人久久| 亚洲精品久久久久久久久久久久| 色先锋久久影院av| 精品爽片免费看久久| 91成人福利在线| 成人激情春色网| 亚洲石原莉奈一区二区在线观看| 黄网站色欧美视频| 亚洲第一av在线| 亚洲第一精品久久忘忧草社区| 中文字幕日韩精品在线| 乱亲女秽乱长久久久| 日韩美女福利视频|