一、自動滾動
添加并設定一個定時器,每個2.0秒,就跳轉到下一條。
擷取目前正在展示的位置。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
列印檢視:
實作步驟:
(1)添加并設定定時器
(2)設定定時器的調用方法
1)擷取目前正在展示的位置
2)計算出下一個需要展示的位置
3)通過動畫滾動到下一個位置
注意點:需要進行判斷。
實作代碼:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
定時器的說明:
當使用者在處理其他事情的時候,定時器會停止工作。應該把定時器添加到runloop中,告訴系統在處理其他事情的時候分一部分空間給它。
二、設定頁碼
在storyboard中添加一個頁碼控件。
實作代碼:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
自動滾動,頁碼的實作效果:
三、完善
說明:監聽collectionview的滾動,當手動觸摸collectionview,嘗試拖拽的時候,把定時器停掉,當手指移開的時候,重新開機定時器。
完整的實作代碼:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
補充說明:
實作瀑布流最理想的做法是繼承uiscrollview,不建議使用多個uitableview的方式實作(這種方式無法實作cell的循環利用,且禁止了cell的滾動時間後,整體的tableview需要随着滾動會出現空白)。
也可以使用collectionview來實作,但使用這種方法需要自定義collectionview的布局(流水布局)