關於cell重用時偶爾重疊的小問題

    這個星期五的工作中遇到了cell重用引起的小問題,問題基本描述如:重用cell時,有可能導致cell的圖片或者一些文字信息的重疊,即新加載的信息會疊加在重用的表格上面。基於這樣一個情況,相信大部分人都跟我的想法一樣,就是重用cell時,將會重疊的部分舊的信息去掉。

   下面以一個聊天列表爲例,做具體講解:

   比方說這樣一個cell(直接截的qq,見諒),自定義的cell,一個UIImageView,兩個UILabel,我遇到的情況是重用cell時,頭像會重疊,發現這個問題是由於有多人聊天的情況,  類似與這個頭像,由於頭像之間有縫隙,就能夠看見下面還有個之前的圖片。解決思路第一段說過了,下來來說具體解決方案。

   如果圖片是直接設置的,比如單人圖片:cell.headImageView.image = [UIImage imageNamed:@"xxx"],這種情況:重用後在設置新數據之前,cell.headImageView.image = nil就行了。

   如果是添加新的UIImageView這種的,比如多人聊天,cell.headImageView裏面其實添加的多個位置設置好的UIImageView,這種情況,for(UIImageView * imageView : cell.headImageView.subViews){ [imageView removeFromSuperView];}即可。(上面的代碼都是直接打的,可能方法有些出入,但就是個意思,相信大家都能看的懂)

   舉一反三,cell重用遇到的重疊問題應該都是可以用這個思路解決的,即重用後在添加新數據之前,清空之前的數據在設置就OK了。如果大家還有跟方便簡介的方法,熱烈歡迎@我。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章