效果圖展示:
在眾多的APP中都會有這樣一種視圖,去展示重點推薦晾剖,熱門資訊等內(nèi)容然想。
在實現(xiàn)的過程中哟沫,嘗試了幾種不同的實現(xiàn)方式:
1,直接在UIScrollView上添加UIImageView子視圖:
這種方式可以實現(xiàn)滾動視圖,但是在到達UIScrollView的末端的時候就無法循環(huán)了巍耗。
2,在UIScrollView的開頭和結(jié)尾分別多添加一個子視圖秋麸,代表最后一個子視圖和第一個子視圖。如下圖的“4” “1”
在每次滾動到最后一個子視圖的時候炬太,再往后滾動的同時
setContentOffset
到真正的第一個子視圖灸蟆,或者在滾動到第一個子視圖的時候,在往前滾動的同時setContentOffset
到真正的最后一個子視圖亲族。如果這樣子實現(xiàn)炒考,在用手指左右滑動的時候,是沒有的問題的霎迫。但是斋枢,如果設(shè)置定時器,進行自動循環(huán)展示的時候知给,就會出現(xiàn)從最后一個視圖跳轉(zhuǎn)到第一個視圖時的動畫錯誤瓤帚。
3,在UIScrollView上只添加三個子視圖涩赢,分別代表當前展示的視圖戈次,當前視圖的前一個視圖,當前視圖的后面一個視圖筒扒,稱之為contentViews
在實現(xiàn)的時候怯邪,每次UIScrollView滾動的同時
contentViews
中的視圖隨著變換,就可以實現(xiàn)無限循環(huán)的效果霎肯。
這樣實現(xiàn)之后動畫就會是連貫的擎颖,如本文開始展示的動畫效果榛斯。
但是現(xiàn)在實現(xiàn)的代碼還有缺陷,就是無法處理少于3個子視圖的情況搂捧。
第三種方法實現(xiàn)的開源代碼地址在:WFLoopShowView