天天看點

iOS開發UI篇—無限輪播(功能完善)

一、自動滾動

添加并設定一個定時器,每個2.0秒,就跳轉到下一條。

  擷取目前正在展示的位置。

iOS開發UI篇—無限輪播(功能完善)
iOS開發UI篇—無限輪播(功能完善)

  列印檢視:

iOS開發UI篇—無限輪播(功能完善)

實作步驟:

(1)添加并設定定時器

(2)設定定時器的調用方法

  1)擷取目前正在展示的位置

  2)計算出下一個需要展示的位置

  3)通過動畫滾動到下一個位置

  注意點:需要進行判斷。

實作代碼:

iOS開發UI篇—無限輪播(功能完善)
iOS開發UI篇—無限輪播(功能完善)

定時器的說明:

  當使用者在處理其他事情的時候,定時器會停止工作。應該把定時器添加到runloop中,告訴系統在處理其他事情的時候分一部分空間給它。

二、設定頁碼

  在storyboard中添加一個頁碼控件。

實作代碼:  

iOS開發UI篇—無限輪播(功能完善)
iOS開發UI篇—無限輪播(功能完善)

 自動滾動,頁碼的實作效果:

iOS開發UI篇—無限輪播(功能完善)

三、完善

說明:監聽collectionview的滾動,當手動觸摸collectionview,嘗試拖拽的時候,把定時器停掉,當手指移開的時候,重新開機定時器。

完整的實作代碼:

iOS開發UI篇—無限輪播(功能完善)
iOS開發UI篇—無限輪播(功能完善)

補充說明:

  實作瀑布流最理想的做法是繼承uiscrollview,不建議使用多個uitableview的方式實作(這種方式無法實作cell的循環利用,且禁止了cell的滾動時間後,整體的tableview需要随着滾動會出現空白)。

  也可以使用collectionview來實作,但使用這種方法需要自定義collectionview的布局(流水布局)

繼續閱讀