寫這篇文章是因為在項目中遇到了這個問題,,所以拿下來和大家一起分享,平常一直沒有因為復用問題而導致數據復用混亂,
先看看效果圖:
image
出現了舊的數據,所以現在這個問題就不能在使用registerNib注冊xib方法了,一般復用出現數據混亂可能原因就是cell中包含UITextField和
uitableView類型的數據時,出現數據混亂的情況比較大,這時候我們就需要做一些特別得操作,
思路:1:每次拿到cell進行判斷是否為nil
2:為nil就重新創建
3:不為nil時就刪除所有的子視圖
//解決xib復用數據混亂問題
LunCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (nil == cell) {
cell= (LunCell *)[[[NSBundle mainBundle] loadNibNamed:@"LunCell" owner:self options:nil] lastObject];
}else{
//刪除cell的所有子視圖
while ([cell.contentView.subviews lastObject] != nil)
{
[(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];
}
}
完美解決
image