频道栏目
首页 > 程序开发 > 移动开发 > IOS > 正文
UITableView中Cell重用机制导致内容出错的解决方法
2013-04-16 10:33:06           
收藏   我要投稿

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

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

对于多变的自定义cell,这种重用机制会导致内容出错。为了解决这种出错的,经过反复的google,终于找到一个适合的方法。就是把原来的

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:defineString];修改为:


UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

这样就能解决掉cell重用机制导致的问题了。
 

点击复制链接 与好友分享!回本站首页
相关TAG标签 机制 方法 内容
上一篇:didReceiveMemoryWarning
下一篇:iOS网络编程实践--NSStream实现TCP Socket iPhone客户端
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站