解決cell重用的問題
UITableView通過重用單元格來達到節(jié)省內(nèi)存的目的吧凉,通過為每個單元格指定一個重用標示(reuseidentifier)假抄,即指定了單元格的種類怎栽,以及當單元格滾出屏幕時,允許恢復單元格以便復用宿饱。對于不同種類的單元格使用不同的ID熏瞄,對于簡單的表格,一個標示符就夠了谬以。
如一個TableView中有10個單元格强饮,但屏幕最多顯示4個,實際上iPhone只為其分配4個單元格的內(nèi)存为黎,沒有分配10個邮丰,當滾動單元格時,屏幕內(nèi)顯示的單元格重復使用這4個內(nèi)存铭乾。實際上分配的cell的個數(shù)為屏幕最大顯示數(shù)柠座,當有新的cell進入屏幕時,會隨機調(diào)用已經(jīng)滾出屏幕的Cell所占的內(nèi)存片橡,這就是Cell的重用。
對于多變的自定義Cell淮野,這種重用機制會導致內(nèi)容出錯捧书,為解決這種出錯的方法,把原來的
UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:defineString]
修改為:UITableViewCell *cell = [tableview cellForRowAtIndexPath:indexPath];