1. 程式人生 > >iOS 循環輪播框架思路

iOS 循環輪播框架思路

自然 caption name -o 完整 auto scroll 初始 一次

使用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,也就是圖片1
    2)如果用戶手指向左滑動,那麽就會顯示圖片2,當圖片2顯示完整後迅速重新設置左中右三個UIImageView
    的內容為圖片1、圖片2、圖片3,然後馬上設置contentOffset再次為一開始默認的一個imageview寬度,
    讓它滾回默認一開始的位置,以此來達到一直顯示的是中間的UIImageView的效果,此刻中間那個imagview
    顯示的也就是圖片2
    3)繼續向左滑動看到圖片3,當圖片3滾動完成迅速重新設置3個UIImageView的內容為圖片2、圖片3、圖片
    4,然後通過設置contentOffset依然顯示中間的那個UIImageView,此刻也就是圖片3
    5)當然,向右滑動原理完全一樣,如此操作就給用戶一種循環的錯覺,而且圖片多的話不占用過多內存
  • 為此我做了一個動態圖,以此來動態描述下這個原理
技術分享
scroll.gif

iOS 循環輪播框架思路