1. 程式人生 > >UITableViewCell 複用時出現資訊錯亂

UITableViewCell 複用時出現資訊錯亂

做專案時,tableViewCell的內容,需要通過網路載入時,有時會出現錯亂。

原因:
我們設定tableViewCell時,會採用複用cell方式。而第一次執行顯示的cell本身就擁有了網路載入好的對應的資訊。
當螢幕滑動,cell複用時,由於網路載入資料需要一段時間,那麼這是被複用的cell裡面的資訊依舊是之前對應的資訊,等到載入完畢,才更新了資訊。所以會出現內容顯示錯亂。

解決方式:
不要直接將網路載入資料直接給cell賦值。可以用模型,將網路載入的資料賦值給對應的模型,然後每個cell對應一個模型就好。

不足之處:
如果網路載入的資訊,裡面有圖片這種記憶體很大的。那麼這樣將圖片和模型繫結,在圖片很多的情況下,會導致記憶體過多,造成閃退。
這樣的話,不好將記憶體如此大的圖片儲存在模型裡面,應該將資料分開存在控制器或者是單例資料中,方便手機接收到記憶體警告的時候,清空儲存的資料。

補充:
- (void)didReceiveMemoryWarning
這個方法是用來處理系統出現記憶體警告而呼叫的。模擬器裡面,可以模擬記憶體出現警告的情況,然後程式碼會自動呼叫這個方法,我們需要在這個方法裡面做清除一定記憶體的處理。(如將儲存圖片的字典、儲存網路下載資料的字典、儲存非同步下載操作的緩衝池清空)

相關推薦

UITableViewCell 用時出現資訊錯亂

做專案時,tableViewCell的內容,需要通過網路載入時,有時會出現錯亂。 原因: 我們設定tableViewCell時,會採用複用cell方式。而第一次執行顯示的cell本身

轉 UITableView 重用 UITableViewCell 並非同步載入圖片時會出現圖片錯亂的情況

UITableView 重用 UITableViewCell 並非同步載入圖片時會出現圖片錯亂的情況 當然大多數情況下可以用 SDWebImage, 這個庫功能強大,封裝的很好。但自己重頭來寫可能對問題理解的更深。 SDWebImage 有點複雜,很多人也會參考一

打開的網頁經常會出現排版錯亂怎麽辦?

ack .com 出現 技術 國內 ade ron 系統 strong 打開的網頁經常會出現排版錯亂怎麽辦? https://www.zhihu.com/question/29379377 你的系統時間對麽 系統時間不對的話https會這樣 掛啥vpn了麽 掛著vpn有一

解決 .net HttpClient 調用時出現的 "A task was cancelled" 錯誤

rdquo .cn 但是 strong 錯誤 調用 官方文檔 簡單的 cell 近日在系統中集成ElasticClient客戶端,自動創建索引、刪除索引,發現通過 ElasticClient 的 LowerLevelClient 無法正確返回結果,但是索引已成功創建或刪除。

jenkins使用時出現的問題!

date gnu 命令 node 系統管 center fail ring 輸入 下載LOFTER我的照片書 | 從安裝到日常使用中遇到過的問題和解決方法; 背景/問題:安裝時是跳過安裝插件過程的,安裝好後,我發現

Android TabLayout在與viewpager AppBarLayout一起使用時出現tab選中後下劃線滑動緩慢,卡頓異常解決方案

今天早上剛測試發現的一個問題,之前沒有注意到,特別尷尬感覺,之前經常使用TabLayout和viewpager聯動切換碎片,異常的情況如下圖展示: 佈局程式碼如下: <?xml version="1.0" encoding="utf-8"?> <android.s

SpringData JPA框架使用時出現JSON迴圈依賴解決方案

發現問題出在轉換JSON的環節,出現死迴圈,如下為解決方法 Book類上面放入 @JsonIgnoreProperties(ignoreUnknown = true, value = {"hibern

Matlab優化工具箱(optimization toolbox)使用時出現的一個問題

    上次在筆記本上用Matlab2010b的優化工具箱學習遺傳演算法求解器的操作時,出現了一個非常鬱悶的問題:     按照書上的步驟,我設定適應函式,變數個數,其他引數預設的情況下,點選開始按鈕,提示框出現‘Optimization running.Too many

Android原生webView載入h5頁面出現載入錯亂不完全問題

一、錯誤的效果圖: 二、正確的效果圖: 三、解決方案: webView.getSettings().setDomStorageEnabled(true);//開啟DOM儲存API 四、參考文章: 地址:點選開啟連結 http://blog.csdn.net/u010

easyui使用時出現這個Uncaught TypeError: Cannot read property 'combo' of undefined

easyui使用時出現這個Uncaught TypeError: Cannot read property 'nodeName' of undefined  最後檢查發現是必須給select一個id,光給name不行, 構建後,easyui改變了dom結構,元素的訪問

一個STM8S ADC腳與其它功能用時的話題

一年多前寫過一篇《STM8S晶片GPIO腳複用AD功能後無法回到GPIO狀態問題》的小文,介紹STM8S晶片的ADC應用時相關施密特觸發器未適時開關而導致的問題。 大致內容就是某一GPIO口被複用為AD輸入腳做相關AD檢測。之後,把該腳AD功能禁用掉,再配置切換為帶下降沿觸發的外部中斷觸發腳,讓其作為

recycleview用導致資料錯亂解決的3種方法

這是網上貼上的一張圖片1.第一種簡單粗暴,直接在viewholder設定如下程式碼即可,但效能可能大打折扣innerFragmentMyOderByViewHolder.setIsRecyclable(false);2.第二種,推薦使用,在需要使用的viewholder 中對

TableViewCell的出現數據重複的解決方法

用tableview的時候特別容易會出現cell的資料重複問題,所以就整理了下解決辦法,以後用起來方便,同時也希望對大家有所幫助。 第一種cell的複用寫法 - (UITableViewCe

[Latex] tikz包使用時出現的一個問題及解決

最近寫論文時,需要用到一個填充的等邊三角形作為符號標記,latex本身的\blacktriangle 所呈現的卻是等腰三角形,而\triangle只是未填充的等邊三角形。網上查閱資料,發現了tikz包可以用於繪製一些符號,在導言區定義符號,並在實際始終在利用對符號的命名直接

“Internet連線共享訪問被啟用時,出現了一個錯誤” 解決方法

本人電腦Win7,前段時間還能共享本地連線給無線上網,現在共享的時候卻莫名的出現了錯誤:“Internet連線共享訪問被啟用時,出現了一個錯誤”。 通過查詢得到共享需要開啟服務"Internet Connection sharing",在執行中輸入services.ms

Linux靜態編譯的curl靜態庫,使用時出現的告警問題

./configure --prefix=/usr/local/curl --enable-static --without-libidn --without-ssl --without-librtmp --without-gnutls --without-nss --wit

linux下編譯自己的靜態庫時依賴其他的動態庫,使用時出現“undefined reference to”

        對於我這個剛入IT行業不就得新手來說,在linux下連結庫的時候總是會遇到各種各樣奇葩的問題,最多的就是“undefined reference to”和“cannot find”這兩類,層出不窮,總是在我即將完成工作的時候給我當頭一棒,讓我欲罷不能。這不,這

UICollectionView與UITableView在用時,資料重疊問題

在進行了cell的複用後,如果要避免出現數據重疊,圖片錯亂的問題,首先要注意,cell中Label、Button、ImageView等的建立要放在初始化方法裡面,tableViewCell的初始化方法是 - (id)initWithStyle:(UITa

mosquitto 使用時出現的一些問題及其解決辦法

問題一:問題描述: 在centos7上編譯mosquitto原始碼時,出現以下問題: make[1]: 進入目錄“/home/jason/mosquitto-1.2/man” xsltproc mosquitto.8.xml warning: failed to lo

關於一個ListView使用多個item佈局在優化時出現顯示錯亂的解決方案

一個很麻煩的問題,引用兩個或者多個佈局由於使用了ViewHolder和contenView做優化,頁面在複用時出現要顯示的內容錯亂,經過上網查詢和查谷歌官方的原始碼終於解決了這個問題 首先看下谷歌原始碼是怎麼寫的 這個是Adapter.class檔案中的