iOS-關於cell的重疊問題

來源:互聯網
上載者:User

標籤:

    記得很早之前遇到過一個問題,關於cell的重疊問題,現在回顧總結一下。

    iOS中tableview的cell顯示是會消耗記憶體的,如果要顯示無數個cell,不可能把每個cell都儲存下來,為瞭解決這個問題,cell就用了重用機制,tableview中每次顯示的cell數是有限的,cell的個數是能顯示cell的最大個數,當超過cell能顯示的最大個數,則會重用之前建立的cell,這時就出現cell的重疊問題,比如建立了第一個cell,cell裡面有一個label,當重用到這個cell,label不現實,則可能出現cell的重疊現象。

    解決辦法:

    1.cell的每個標示符都不一樣。雖然解決問題了,但是記憶體的消耗是巨大的。

    NSString *CellIdentifier = [NSString stringWithFormat:@"Cell%d%d", [indexPath section], [indexPath row]];//以indexPath來唯一確定cell

    2.刪除cell下面所有的子視圖。

  if (cell == nil) {

  cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

  }

  else

  {

  //刪除cell的所有子視圖

  while ([cell.contentView.subviews lastObject] != nil)

  {

  [(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];

  }

  }

  //...其他代碼

  }

iOS-關於cell的重疊問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.