iOS-UIScrollview無限循環(huán)

UIScrollview,顧名思義,就是一個可以滾動的視圖,他的父類是UIView,在開發(fā)過程中經(jīng)常會用到,例如常用的IUTableView就是他的子類.UIScrollview有很多property,這里我們挑一些常用的方法和屬性.如圖1.1


1.1

??? contentSize、contentInset、contentOffset在開發(fā)中會經(jīng)常使用,為了幫助大家理解這里以圖形的形式展現(xiàn)三者之間的關(guān)系:

1.2

?? 下面就開始討論無限循環(huán)吧.

??? 我們知道在scrollview中加入了其他控件后,只要設(shè)置contesize,這些控件就可以滾動,那么要實(shí)現(xiàn)無限瀏覽就兩種方法:一,無限疊加,就是無限的創(chuàng)建控件,很顯然這是不可取的,會大大的消耗系統(tǒng)的內(nèi)存;另一種就是創(chuàng)建有限個控件,然后重復(fù)使用(就是UITableview那樣).

??? 假設(shè)要在scrollivew中顯示7張圖片,那么究竟創(chuàng)建幾個UIImageView好呢?其實(shí)都可以,兩個,三個,四個,五個(一個就不行了),很顯然,創(chuàng)建的越少所占內(nèi)存越少,在這里我們就討論創(chuàng)建三個.然后讓著三個來分別加載不同的圖片就OK了!

??? 假設(shè)7張圖片(分別為0,1,2,3,4,5,6,),那么在剛開始的時候我們創(chuàng)建三個UIImageView,分別加載6,0,1這三張圖片,如圖1.3

1.3

? ? 然后讓scrollview通過setContentOffset顯示中間這張0即可,繼續(xù)滑動看到1,迅速讓3個UIImageView重新加載0,1,2,再通過setContentOffset顯示中間1這張圖片即可,如圖:1.4

1.4

另外注意的是盡量不要在scrollViewDidScroll(scrollview正在滾動的時候)做一些事情,因?yàn)閟crollViewDidScroll
這個方法很耗性能的.好了,最后再附上運(yùn)行的效果圖以及代碼...

github地址???

注:(部分圖片采用了KenshinCui)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *7月8日上午 N:Block :跟一個函數(shù)塊差不多,會對里面所有的內(nèi)容的引用計數(shù)+1,想要解決就用__block...
    炙冰閱讀 2,733評論 1 14
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,361評論 4 61
  • 實(shí)現(xiàn)思路 依然是用到UIScrollView,不同的是這次運(yùn)用重用的思想,因?yàn)椴还芪覀冇卸嗌購垐D片要輪播,在UIS...
    Salad可樂閱讀 2,617評論 11 1
  • 星座是不是真的那么神奇?從幾個月前我就開始關(guān)注星座了,也許和很多人一樣,經(jīng)歷了一些事情,就變得脆弱開始糾結(jié)命運(yùn)的意...
    拾貳月留白閱讀 359評論 0 1
  • 從來沒有想過作為英語菜鳥的我會獨(dú)自一人帶著爸媽和公婆來一場澳洲自由行。 出國游計劃了大半年,想出國玩的好所以就不想...
    貓司令的碎碎念閱讀 968評論 2 6

友情鏈接更多精彩內(nèi)容