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

首頁 > 系統 > iOS > 正文

iOS實現輪播圖banner示例

2020-07-26 02:57:40
字體:
來源:轉載
供稿:網友

樓主項目中需要有一個輪播圖,因為比較簡單,就自己寫了個,因為是從網上弄得圖片 所以用了SDWebImage 這個三方庫 當然自己也可以去掉

類型后面有*號 如用使用 請自行加上。。。。。

代碼:.h 文件

@protocol TJXViewDelegate<NSObject>//判斷點擊的那個-(void)sendImageName:(TJXView *)TJXView andName:(NSInteger)selectImage;@end@interface TJXView : UIView@property (nonatomic,weak)id<TJXViewDelegate>delegate;//傳一個frame 和 裝有圖片名字的數組過來//參數一:frame//參數二:裝有圖片名字的數組//參數三:BOOL如果是YES,那么自動滾動,如果是NO不滾動-(id)initWithFrame:(CGRect)frame andImageNameArray:(NSMutableArray * )imageNameArray andIsRunning:(BOOL)isRunning;@end

.m文件

@interface TJXView()<UIScrollViewDelegate>{  NSInteger _currentPage; //記錄真實的頁碼數  NSTimer *_timer; //生命一個全局變量}@property (nonatomic,assign) BOOL isRun;@property (nonatomic,strong) NSMutableArray *imageArray;//存儲圖片的名字@property (nonatomic,strong) UIScrollView *scrollView;@property (nonatomic,strong) UIPageControl *pageControl;@property (nonatomic,assign) CGFloat width;//view的寬@property (nonatomic,assign) CGFloat height;//view的高@end-(id)initWithFrame:(CGRect)frame andImageNameArray:(NSMutableArray *)imageNameArray andIsRunning:(BOOL)isRunning{  self = [super initWithFrame:frame];  if (self) {    _width = self.frame.size.width;    _height = self.frame.size.height;    //arrayWithArray 把數組中的內容放到一個數組中返回    self.imageArray = [NSMutableArray arrayWithArray:imageNameArray];    //在數組的尾部添加原數組第一個元素    [self.imageArray addObject:[imageNameArray firstObject]];    //在數組的首部添加原數組最后一個元素    [self.imageArray insertObject:[imageNameArray lastObject] atIndex:0];    self.isRun = isRunning;    _currentPage = 0;    [self createSro];    [self createPageControl];    [self createTimer];  }  return self;}-(void)createTimer{  if (_isRun == YES) {    _timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(change) userInfo:nil repeats:YES ];    [[NSRunLoop currentRunLoop]addTimer:_timer forMode:NSRunLoopCommonModes];  }}-(void)change{  //1獲得當前的點  CGPoint point = _scrollView.contentOffset;  //2求得將要變換的點  CGPoint endPoint = CGPointMake(point.x+_width, 0);  //判斷  if (endPoint.x == (self.imageArray.count-1)*_width) {    [UIView animateWithDuration:0.25 animations:^{      _scrollView.contentOffset = CGPointMake(endPoint.x, 0);    } completion:^(BOOL finished) {      //動畫完成的block      _scrollView.contentOffset = CGPointMake(_width, 0);      CGPoint realEnd = _scrollView.contentOffset;      //取一遍頁碼數      _currentPage = realEnd.x/_width;      _pageControl.currentPage = _currentPage-1;    }];  }  else{    //0.25s中更改一個圖片    [UIView animateWithDuration:0.25 animations:^{      _scrollView.contentOffset = endPoint;    } completion:^(BOOL finished) {    }];        CGPoint realEnd = _scrollView.contentOffset;    //取一遍頁碼數    _currentPage = realEnd.x/_width;    _pageControl.currentPage = _currentPage-1;  }  }//創建頁碼指示器-(void)createPageControl{  _pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(_width-200, _height-30, 100, 30)];  _pageControl.centerX = _width/2;  _pageControl.numberOfPages = self.imageArray.count-2;  _pageControl.pageIndicatorTintColor = WP_GRAY_COLOR;  _pageControl.currentPageIndicatorTintColor = [UIColor whiteColor];  _pageControl.userInteractionEnabled = NO;  [self addSubview:_pageControl];}//創建滾動視圖-(void)createSro{  _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, _width, _height)];  _scrollView.contentSize = CGSizeMake(_width*self.imageArray.count, _height);  for (int i = 0; i < self.imageArray.count; i++) {    UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i*_width, 0, _width, _height)];//    imageView.image = [UIImage imageNamed:self.imageArray[i]];    [imageView sd_setImageWithURL:self.imageArray[i] placeholderImage:[UIImage imageNamed:@"home_banner_blank"]];    imageView.userInteractionEnabled = YES;    imageView.tag = 200+i;    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];    [imageView addGestureRecognizer:tap];    [_scrollView addSubview:imageView];  }  //水平指示條不顯示  _scrollView.showsHorizontalScrollIndicator = NO;  //關閉彈簧效果  _scrollView.bounces = NO;  //設置用戶看到第一張  _scrollView.contentOffset = CGPointMake(_width, 0);  //設置代理  _scrollView.delegate = self;  //分頁效果  _scrollView.pagingEnabled = YES;  [self addSubview:_scrollView];}-(void)tap:(UITapGestureRecognizer *)tap{  if(_delegate&&[_delegate respondsToSelector:@selector(sendImageName:andName:)]){    [_delegate sendImageName:self andName:tap.view.tag-201];  }else{    NSLog(@"沒有設置代理或者沒有事先協議的方法");  } }#pragma mark UIScrollViewDelegate//停止滾動-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{  if (_timer) {    [_timer setFireDate:[NSDate dateWithTimeIntervalSinceNow:2]];  }  //圖片的個數 1 2 3 4 5 6 7 8  //真實的頁碼 0 1 2 3 4 5 6 7  //顯示的頁碼  0 1 2 3 4 5  CGPoint point = _scrollView.contentOffset;  if (point.x == (self.imageArray.count-1)*_width) {    scrollView.contentOffset = CGPointMake(_width, 0);  }  if (point.x == 0) {    scrollView.contentOffset = CGPointMake((self.imageArray.count-2)*_width, 0);  }  //取一遍頁碼數  CGPoint endPoint = scrollView.contentOffset;  _currentPage = endPoint.x/_width;  _pageControl.currentPage = _currentPage-1;}//手指開始觸摸的時候,停止計時器-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{  if (_timer) {    //如果有,停掉    [_timer setFireDate:[NSDate distantFuture]];  }}

在項目中  導入頭文件  遵守代理

    TJXView * TJXView = [[TJXView alloc]initWithFrame:CGRectMake(0, 0, WPSCREEN_WIDTH, 100*WPSCREEN_HIGTH_RATIO) andImageNameArray:self.bannerImager andIsRunning:YES];    TJXView.delegate = self;    [self.view addSubview: TJXView];#pragma mark TJXViewDelegate-(void)sendImageName:(TJXView *) TJXView andName:(NSInteger)selectImage{   KKLog(@"%ld",(long)selectImage);}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人精品视频在线| 日韩中文在线不卡| 亚洲国产小视频| 亚洲片在线资源| 日韩激情视频在线| 视频一区视频二区国产精品| 国产色综合天天综合网| 日本国产一区二区三区| 伊人伊成久久人综合网小说| 亚洲第一页在线| 成人免费看吃奶视频网站| 91成人福利在线| 久久久亚洲网站| 国产亚洲精品日韩| 国产精品久久久久久久久影视| 亚洲黄色在线观看| 欧美孕妇孕交黑巨大网站| 国产一区二区三区在线看| 精品欧美激情精品一区| 91精品国产综合久久香蕉922| 亚洲女人被黑人巨大进入al| 成人久久久久久| 国产一区二区在线免费| 欧美精品久久久久久久久| 久久电影一区二区| 一夜七次郎国产精品亚洲| 在线亚洲欧美视频| 国产经典一区二区| 啊v视频在线一区二区三区| 国产91精品不卡视频| 自拍视频国产精品| 亚洲偷欧美偷国内偷| 欧美极度另类性三渗透| 国产精品福利久久久| 日韩乱码在线视频| 国产在线98福利播放视频| 亚洲色图五月天| 欧美大成色www永久网站婷| 一区三区二区视频| 国产不卡精品视男人的天堂| 美女视频久久黄| 成人在线激情视频| 欧美成人在线网站| 亚洲精品国产免费| 国产精品成人av性教育| 九九九久久久久久| 91精品国产综合久久久久久久久| 欧美日韩亚洲天堂| 国产综合久久久久久| 欧美电影免费观看高清完整| 亚洲综合中文字幕68页| 亚洲精品美女久久| 精品久久久一区二区| 国产原创欧美精品| 亚洲国产成人爱av在线播放| 欲色天天网综合久久| 亚洲精品网站在线播放gif| 国产亚洲视频在线观看| 久久久亚洲福利精品午夜| 欧美限制级电影在线观看| 最新国产成人av网站网址麻豆| 国产精品第七影院| 精品国产乱码久久久久酒店| 2019中文字幕免费视频| 中文精品99久久国产香蕉| 91在线无精精品一区二区| 日韩在线观看免费高清| 久久国产一区二区三区| 国产精品丝袜久久久久久不卡| 国产日韩精品在线观看| www.欧美精品| 国产伦精品一区二区三区精品视频| 九九久久国产精品| 国产91精品最新在线播放| 久久久久久久一区二区| 欧美性xxxxxxx| 菠萝蜜影院一区二区免费| 精品亚洲夜色av98在线观看| 国产精品男人爽免费视频1| 欧美激情第99页| 欧美日韩国产影院| 色无极影院亚洲| 91国产视频在线| 色无极影院亚洲| 亚洲一区第一页| 精品久久久久久中文字幕一区奶水| 黑人巨大精品欧美一区二区| 久久国产精品偷| 亚洲第一免费播放区| 热草久综合在线| 亚洲天堂男人天堂女人天堂| 亚洲一区二区久久久久久| 色婷婷av一区二区三区在线观看| 国产精品直播网红| 亚洲一级黄色片| 国产91精品视频在线观看| 欧美有码在线观看| 久久视频在线观看免费| 欧美午夜性色大片在线观看| 日韩一区二区精品视频| 一个人看的www久久| 日韩高清a**址| 91精品久久久久久| 日韩高清免费观看| 国产精品久久久久久久久久久久久| 国产有码一区二区| 庆余年2免费日韩剧观看大牛| 日韩精品中文字幕在线观看| 亚洲午夜未删减在线观看| 久久久久久久久久久91| 日韩成人xxxx| 日韩成人免费视频| 亚洲欧美国产视频| 日韩精品在线影院| 精品久久久久久久久久久久久久| 日韩欧美成人免费视频| 精品国产一区二区在线| 欧美日本高清一区| 亚洲欧美另类人妖| 欧美色视频日本版| 最近2019中文字幕一页二页| 免费不卡在线观看av| 久久国产视频网站| 亚洲性日韩精品一区二区| www.欧美精品一二三区| 久久99热精品这里久久精品| 精品久久久久久亚洲精品| 成人黄色免费片| 亚洲美女www午夜| 亚洲高清在线观看| 日本国产精品视频| 在线观看91久久久久久| 日韩成人久久久| 国产午夜精品麻豆| 国产拍精品一二三| 中文字幕精品一区久久久久| 一色桃子一区二区| 色老头一区二区三区| 成人国产精品久久久久久亚洲| 成人免费视频xnxx.com| 日本精品一区二区三区在线| 成人黄色片网站| 黑人狂躁日本妞一区二区三区| 亚洲国产精品视频在线观看| 国产一区二区动漫| 国产精品丝袜一区二区三区| 一本大道久久加勒比香蕉| 国产精品久久久久久av下载红粉| 久久久噜噜噜久久久| 亚洲www永久成人夜色| 亚洲天堂男人的天堂| 日本精品免费一区二区三区| 欧美日韩国产中文字幕| 欧美性xxxx18| 国产91免费观看| 国产精品video| 欧美成人黑人xx视频免费观看| 国产精品爽爽爽| 欧美性xxxxxx| 亚洲精品永久免费精品| 欧美韩国理论所午夜片917电影| 久久精品国亚洲| 亚洲男人的天堂在线| 亚洲性无码av在线|