標籤:div 預設 code ima 顯示 動態 使用 image http
使用3個imageview實現無線輪播的大致原理
- 將3個imageview添加到scrollview上面,scrollview的
contensize是3個imageview的寬度,設定scrollview一開始初始的位移量為一個imageview寬度,因為裡面有3個UIImageView,所以scrollview預設顯示的就是中間的那個imageview,並且關鍵就是讓螢幕顯示的始終就是中間的這個imagview
- 使用3個
imageview來回更換圖片,並在每一次更換圖片後立即再設定scrollview位移量還為一個imagview的寬度,也就是讓scrollview滾動後再滾回原來預設的位置,這樣就可以達到始終顯示中間那個imageview的效果
- 看到過其他部落格裡面有這樣描述過這個原理
ps:例如要使用三個UIImageView迴圈顯示5張圖片1)由於中間的imageview是顯示在螢幕上的,它需要在啟動時預設顯示第1張圖片,那麼左邊的imagview自然就需要顯示最後一張圖片,右邊的imagview自然要顯示第二張圖片了.所以一開始肯定預設放圖片5、圖片1、圖片2,當前顯示中間的UIImageView,也就是圖片12)如果使用者手指向左滑動,那麼就會顯示圖片2,當圖片2顯示完整後迅速重新設定左中右三個UIImageView的內容為圖片1、圖片2、圖片3,然後馬上設定contentOffset再次為一開始預設的一個imageview寬度,讓它滾回預設一開始的位置,以此來達到一直顯示的是中間的UIImageView的效果,此刻中間那個imagview顯示的也就是圖片23)繼續向左滑動看到圖片3,當圖片3滾動完成迅速重新設定3個UIImageView的內容為圖片2、圖片3、圖片4,然後通過設定contentOffset依然顯示中間的那個UIImageView,此刻也就是圖片35)當然,向右滑動原理完全一樣,如此操作就給使用者一種迴圈的錯覺,而且圖片多的話不佔用過多記憶體
- 為此我做了一個動態圖,以此來動態描述下這個原理
scroll.gif
iOS 迴圈輪播架構思路