UIScrollView - 圖片輪播器

效果圖

UIScrollView - 圖片輪播.gif

需求:
1.圖片橫向手動滾動
2.圖片橫向定時滾動
3.TextVie的滾動,不影響UIScrollView
思路:

  1. 圖片橫向手動滾動
  • 1.1 自定義圖片
 UIImageView *imgViewText = [UIImageView alloc]initWithImage :XXX];
imgViewText.frame = CGRectMake(X,Y,W,H);
[self.scrollView addSubView:imgViewText];
  • 1.2 設(shè)置contentSize
CGFloat imgMaxX = CGRectGetMaxX(imgViewText.frame);
self.scrollView.contentSize = CGSizeMake(imgMaxX,0);
  • 1.3 實現(xiàn)手動分頁
    1.3.1 啟用PageControl控件
    self.scrollView.pagingEnabled = YES;
    1.3.2 使用PageControl控件
    1. currentPage (當(dāng)前第幾頁)
    2. numberOfPages(共有幾頁)
    self.pageControl.numberOfPages = self.pageSum;
    1.3.3 通過代理(滾動事件),實現(xiàn)滾動和PageControl控件的同步
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
      //獲取滾動時的偏移量
      self.scrollOffset = self.scrollView.contentOffset;
       //最初方法沒有*0.5,這樣如果將圖片滾動到中間位置,pageControl不會改變?yōu)橄乱豁?就是那個點,不會改變)!
      self.pageNo = (self.scrollOffset.x + self.scrollVisibleW *0.5)/self.scrollVisibleW;
      self.pageControl.currentPage = self.pageNo;
    }
    

2.圖片橫向定時滾動

self.timerImgScroll = [NSTimer scheduledTimerWithTimeInterval: 2.0 
target:self 
selector: @selector(autoImgScoll) 
userInfo:nil 
repeats:YES];

每隔2秒,
調(diào)用self的autoImgScoll方法一次,
(self調(diào)用self的autoImgScoll方法一次)
不發(fā)送消息,
重復(fù)調(diào)用
  • 2.2 滾動( 更改contentOffSet )
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;//分頁指示器
@property (assign, nonatomic) int pageNo; //分頁碼
@property(nonatomic) int  pageSum;// 總頁數(shù)

-(void)autoImgScoll{
    self.pageNo ++; 
    if(self.pageNo >= self.pageSum){
        self.pageNo = 0;
    }
    CGFloat  offsetScroll = (CGFloat)self.pageNo * self.scrollVisibleW;
    self.scrollView.contentOffset = CGPointMake(offsetScroll, 0);
}

3.解決Bug

  • 3.1 當(dāng)拖拽UIScrollView時,保持一段時間不放手,然后再次放手,則ScrollView會快速的切換圖片,這是因為在拖拽時候,沒有停止計時器!
    解決方法: 拖拽時候,停止計時器! 停止拖拽后,開啟新的計時器! [self.timer invalidate] - 銷毀計時器
  • 3.2 當(dāng)拖拽/滾動界面上其他控件時, UIScrollView停止?jié)L動?
    原因: 能拖拽/滾動的控件都是繼承自UIScrollView
    界面只有一個線程處理UIScrollView的事件,所以,拖拽了別的控件,那么UIScrollView就不會處理!
    解決方法:
    更改timer的優(yōu)先等級,
    控件的默認(rèn)等級,NSRunLoopCommonModes,
    但是網(wǎng)絡(luò)和計時器的等級NSDefaultRunLoopModes
    代碼:
      //獲取當(dāng)前運行的線程
      //把計時器,放入當(dāng)前線程中
      //獲取當(dāng)前運行的線程,將’計時器’添加到當(dāng)前線程,調(diào)整當(dāng)前線程的優(yōu)先等級
      NSRunLoop *currentLoop = [NSRunLoop currentRunLoop];
      [currentLoop addTimer:self.timerImgScroll forMode:NSRunLoopCommonModes];
    

UIScrollView - 圖片輪播器(完整代碼)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市么夫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件将谊,死亡現(xiàn)場離奇詭異见转,居然都是意外死亡,警方通過查閱死者的電腦和手機切心,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來片吊,“玉大人绽昏,你說我怎么就攤上這事∏渭梗” “怎么了全谤?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長爷贫。 經(jīng)常有香客問我认然,道長,這世上最難降的妖魔是什么漫萄? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任卷员,我火速辦了婚禮,結(jié)果婚禮上腾务,老公的妹妹穿的比我還像新娘毕骡。我一直安慰自己,他們只是感情好岩瘦,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布未巫。 她就那樣靜靜地躺著,像睡著了一般启昧。 火紅的嫁衣襯著肌膚如雪叙凡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天密末,我揣著相機與錄音握爷,去河邊找鬼。 笑死严里,一個胖子當(dāng)著我的面吹牛新啼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播田炭,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼师抄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了教硫?” 一聲冷哼從身側(cè)響起叨吮,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤站削,失蹤者是張志新(化名)和其女友劉穎矮瘟,沒想到半個月后攒磨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灭返,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年涵叮,在試婚紗的時候發(fā)現(xiàn)自己被綠了惭蹂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡割粮,死狀恐怖盾碗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舀瓢,我是刑警寧澤廷雅,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站京髓,受9級特大地震影響航缀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜堰怨,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一芥玉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧备图,春花似錦灿巧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绞吁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唬格,已是汗流浹背家破。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留购岗,地道東北人汰聋。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像喊积,于是被迫代替她去往敵國和親烹困。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容