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

首頁 > 系統 > iOS > 正文

iOS實現自動循環播放的banner實例詳解

2019-10-21 18:42:51
字體:
來源:轉載
供稿:網友

前言

對于banner輪播圖,相信大家都會經常用到。自動循環播放的banner是很常見的UI組件。如何實現呢?下面就來給大家詳細介紹下,話不多說了,下面來一起學習學習吧。

1.實現思路

1.橫向滾動的banner。

  • UIScrollViw+UIImageView.
  • UICollectionView+UICollectionViewCell.
  • 前者需要自己做重用UIImageView,后者可以直接重用UICollectionViewCell。如果前者沒有做重用,多占用內存。

2.自動循環播放banner。

  • 可以使用計時器觸發循環播放.
  • 拖動或手動滑動banner時,停止自動循環播放banner。手勢停止后,開啟自動循環播放banner。

3.特殊banner位的處理。

  • 處于第1個或最后1個時,為保證橫向自動滑動效果流暢性,不跳動,需要特殊處理下。
  • 在生成banner時,第1個前面插入最后1個banner。最后1個banner后面插入第1個banner。當滑動到最后1個banner時,重置于第2個banner位。

2.本文采用第二種:UICollectionView+UICollectionViewCell

關鍵代碼實現

2.1生成banner的特殊處理

- (void)setBannerList:(NSArray<KBannerItem *> *)bannerList { if (bannerList.count > 1) {  NSMutableArray *itemList = [NSMutableArray arrayWithArray:bannerList];  [itemList insertObject:bannerList.lastObject atIndex:0];  [itemList addObject:bannerList.firstObject];  _bannerList = itemList; }else{  _bannerList = bannerList; } if (self.bannerList.count > 1) {  self.bannerPageControl.numberOfPages = self.bannerList.count - 2; }else{  self.bannerPageControl.numberOfPages = 0; } self.noBannerImageView.hidden = self.bannerList.count > 0; self.bannerPageControl.currentPage = 0; [self.collectionView reloadData]; self.collectionView.contentOffset = CGPointMake(CGRectGetWidth(self.collectionView.frame), 0);}

2.2 banner自動循環播放觸發的事件

- (void)handleBannerChangeEvent:(id)sender { if (_bannerPageControl.numberOfPages <= 1) {  return; } NSInteger page = _bannerPageControl.currentPage + 1; [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:page + 1 inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:YES];}

2.3開啟自動播放或關閉自動播放bannner。

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { self.countTimer.isOpen = NO;}- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView     willDecelerate:(BOOL)decelerate { self.countTimer.isOpen = YES;}

2.4.滑動時的特殊處理。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (_bannerList.count <=1) {  return; } CGFloat width = CGRectGetWidth(scrollView.frame); NSInteger currentPage = scrollView.contentOffset.x / width; if (currentPage == 0) {  if (scrollView.contentOffset.x < 0) {   [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:_bannerList.count - 2 inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:NO];   self.bannerPageControl.currentPage = _bannerList.count - 2;  }else{   [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:NO];   self.bannerPageControl.currentPage = 0;  } }else if (currentPage == _bannerList.count - 1) {  self.bannerPageControl.currentPage = 0;  [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:NO]; }else{  self.bannerPageControl.currentPage = currentPage - 1; }}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.日韩.com| 日韩成人在线免费观看| 久久久久久伊人| 欧美另类交人妖| 久久精品国产91精品亚洲| 欧美成人午夜激情视频| 亚洲在线一区二区| 91精品啪在线观看麻豆免费| 91精品国产91久久久久久| www国产91| 日韩视频第一页| 国产在线精品播放| 国产精品一久久香蕉国产线看观看| 韩国精品久久久999| 欧美限制级电影在线观看| 国产日韩欧美夫妻视频在线观看| 欧美视频在线观看免费| 亚洲欧美一区二区三区久久| 欧美激情久久久| 久久精彩免费视频| 高清日韩电视剧大全免费播放在线观看| 日韩av在线高清| 欧美午夜美女看片| 18一19gay欧美视频网站| 亚洲bt欧美bt日本bt| 亚洲成人教育av| 日韩美女视频免费在线观看| 91亚洲人电影| 欧美国产视频一区二区| 成人在线激情视频| 亚洲偷熟乱区亚洲香蕉av| 福利微拍一区二区| 欧美高清在线视频观看不卡| 91九色单男在线观看| 国产精品免费视频xxxx| 久久国产精品首页| 欧美一乱一性一交一视频| 国产亚洲欧美日韩一区二区| 亚洲一级黄色片| 国产在线日韩在线| 国产z一区二区三区| 亚洲国产精品专区久久| 国产91精品久| 欧美日韩国产丝袜美女| 欧美孕妇与黑人孕交| 久久91精品国产91久久久| 精品视频久久久久久| 久久精品2019中文字幕| 97在线免费观看| 日韩av电影免费观看高清| 一区二区中文字幕| 国产精品av在线| 久久久日本电影| 成人写真福利网| 久久人人爽人人| 亚洲毛片在线观看| 美女撒尿一区二区三区| 91av在线免费观看| 亚洲国产第一页| 国产精品黄视频| 岛国av在线不卡| 91久久久久久久久久| 成人国内精品久久久久一区| 97在线观看免费| 国产精品91免费在线| 91色p视频在线| 欧美第一黄网免费网站| 亚洲专区国产精品| 国产免费亚洲高清| 亚洲午夜精品久久久久久性色| 亚洲国产欧美一区| 欧美性一区二区三区| 亚洲人成绝费网站色www| 欧美成人性生活| 亚洲欧美福利视频| 亚洲综合中文字幕在线观看| 日韩中文字幕在线| 亚洲白拍色综合图区| 亚洲欧美色图片| 久久综合亚洲社区| 亚洲天堂男人天堂| 亚洲国产精品久久久久久| 欧美成人免费网| 国产在线观看精品一区二区三区| 91久久精品国产91久久| 久久99久久久久久久噜噜| 国产ts人妖一区二区三区| 亚洲成在人线av| 7777精品久久久久久| 欧美另类高清videos| 亚洲人成电影网站色www| 欧美成人免费在线观看| 成人免费激情视频| 亚洲偷熟乱区亚洲香蕉av| 欧美成aaa人片在线观看蜜臀| 亚洲香蕉成视频在线观看| 欧美性高潮在线| 午夜精品蜜臀一区二区三区免费| 亚洲天堂av在线免费观看| 欧美午夜视频一区二区| 久久久久久久久久av| 久久精品视频免费播放| 8090理伦午夜在线电影| 国产视频综合在线| 国产91精品久久久| 久久久天堂国产精品女人| 欧美综合在线第二页| 国产精品h在线观看| 亚洲国产另类 国产精品国产免费| 91免费视频国产| 欧美小视频在线| 精品久久久久久亚洲国产300| 久久中文字幕国产| 久久久国产在线视频| 91亚洲精品在线观看| 久久久久国产视频| 亚洲视屏在线播放| 成人精品网站在线观看| 91精品国产高清自在线| 欧美肥老太性生活视频| 国产一区视频在线播放| 国产成人精品久久久| 最近2019中文字幕mv免费看| 中文字幕久热精品视频在线| 日韩专区在线观看| 日韩欧美第一页| 国产美女搞久久| 国产亚洲精品久久久久久| 国产精品揄拍500视频| 第一福利永久视频精品| 亚洲精品午夜精品| 亚洲第一中文字幕在线观看| 久久久久久免费精品| 97视频免费看| 午夜精品一区二区三区在线播放| 国模吧一区二区三区| 欧美在线激情网| 欧美性猛xxx| 亚洲精品网站在线播放gif| 日韩中文字幕精品视频| 欧美日韩一区二区三区在线免费观看| 亚洲免费视频观看| 成人性生交大片免费观看嘿嘿视频| 亚洲91精品在线观看| 成人免费网站在线| 亚洲色图色老头| 亚洲国内精品在线| 5252色成人免费视频| 日韩精品高清视频| 亚洲大胆人体视频| 精品久久久久久久中文字幕| 亚洲精品电影网在线观看| 亚洲成**性毛茸茸| 久久久久久欧美| 国产精品99久久久久久久久| 亚洲91精品在线观看| 亚洲一区二区三区在线免费观看| 国产精品永久免费视频| 日韩福利在线播放| 久久99热精品| 成人欧美在线观看| 91精品免费视频| 欧美日韩国内自拍| 国产在线999|