美文网首页
UITableViewCell的重用机制

UITableViewCell的重用机制

作者: Johnny_Chang | 来源:发表于2016-06-23 19:01 被阅读38次

    解决cell重用的问题

    UITableView通过重用单元格来达到节省内存的目的,通过为每个单元格指定一个重用标示(reuseidentifier),即指定了单元格的种类,以及当单元格滚出屏幕时,允许恢复单元格以便复用。对于不同种类的单元格使用不同的ID,对于简单的表格,一个标示符就够了。

    如一个TableView中有10个单元格,但屏幕最多显示4个,实际上iPhone只为其分配4个单元格的内存,没有分配10个,当滚动单元格时,屏幕内显示的单元格重复使用这4个内存。实际上分配的cell的个数为屏幕最大显示数,当有新的cell进入屏幕时,会随机调用已经滚出屏幕的Cell所占的内存,这就是Cell的重用。

    对于多变的自定义Cell,这种重用机制会导致内容出错,为解决这种出错的方法,把原来的

    UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:defineString]

    修改为:UITableViewCell *cell = [tableview cellForRowAtIndexPath:indexPath];

    相关文章

      网友评论

          本文标题:UITableViewCell的重用机制

          本文链接:https://www.haomeiwen.com/subject/ylcodttx.html