通常的 scrollView 用來進行輪播圖的展示.網易新聞中標簽對應的頁面切換展示
舉個栗子:
分析:
創建容器 reusedViewControllers 來存放可以重用的 視圖
創建容器 visibleViewControllers 來存放屏幕中顯示的 視圖
scrollView 出現的時候,
首先需要在屏幕中顯示一張完整的視圖,此刻 做兩件事
1.將視圖 1 添加到 scrollView
2.將視圖 1 添加到visibleViewControllers進行保存
一個視圖->二個視圖
如果向左滑動,會出現 兩個視圖 的情況, 視圖2 也需要加入顯示.當開始滑動的那一刻,做三件事情.
- 在 (存放重用的 VC )reusedViewControllers中查找可重用的 VC, 如果沒有找到就創建一個,存在得到的就是視圖2 .
2.將視圖2 添加到(可見的)visibleViewControllers中進行保存,如果視圖2 是在reusedViewControllers中找到的(不是創建的),那么需要將視圖2從reusedViewControllers中移除,相當于將視圖2從reusedViewControllers移動到了visibleViewControllers.
3.將視圖2添加到 scrollView 中進行個性設置
二個視圖-->一個視圖
如果繼續左滑動,直到視圖1看不見的那一刻,也做三件事情
1.講視圖1從 scrollView 中移除removeFromSuperview
2.講視圖1放進reusedViewControllers 中 等待被重用
3.將視圖1中visibleViewControllers中移除 ,因為它已經屬于 reusedViewControllers中了
直接上代碼:
懶加載
懶得敲代碼了,直接截圖了.湊合看吧...
然后我們看打印的信息:
從打印信息 可以看出來 ScrollView 中有兩個子控件 (隱藏豎直,水平滾動條的情況下)
兩個控件的內存地址都是重復 的
這個適用于 imageView / tableView/ controller
可以用作來輪播圖,
代碼下載