當前位置:首頁 » 文件管理 » ios緩存池

ios緩存池

發布時間: 2023-03-26 22:46:58

Ⅰ iOS自己動手實現tableview可重用機制

tableview的實現原理:
1.給view添加重用Id要用的時候就從重用緩存池裡找可以重用的view如果沒有就創建一個添加到緩存池中
2.把屏幕外不可見的view去掉放進可重用池中
本文就是簡單實現這個可重用功能,創建一個單個view為屏幕大小,只雀嘩需要2個view就可以無限滑動的小demo

首先需要寫一個一個dataSourse的協議供外部使用

只是簡單的實現可重用功能,所以不需要動態添加view,數量鎮汪和大小都寫死了,這個set就相當於緩存池,這里用array也可頃旅行以,但是由於查找可重用view是隨機存取不需要順序存儲所以沒必要用array,判斷和決定一個view是否可重用需要一個標志,這里就用view自帶的tag來處理了,當tag為1時代表可重用(當前不顯示在界面上),為0為不可重用(已顯示在界面上)

之後需要在初始化後就添加一個view,這里創建了一個first標簽用來判斷是不是初始化,因為layoutsubviews不只會調用一次,而且我嘗試的時候發現是手指移動距離等於屏幕寬度的時候正好會調用一次(一開始沒注意這個問題被坑了好久)

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
//獲取每次調用該方法相對上次調用時的手指偏移量
let offset = (touches.first?.previousLocation(in: self).x)! - (touches.first?.location(in: self).x)!
//記錄當前屏幕左邊到原點的距離
contentOffset += offset

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:708
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:971
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:680
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:832
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:739
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1079
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:310
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:190
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:877
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:834