ios之清除cell缓存,解决cell的重用问题。

原文:http://blog.csdn.net/chaoyuan899/article/details/13291637

tableView表格中的cell有重用机制,这是一个很好的东西,可以避免开辟很多的空间内存。但是有时候我们不想让它重用cell,,可以用以下的代码解决。

将这个代码放在:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ }这个函数中执行就好了。

[cpp] view plaincopyprint?

  1. //清楚cell的缓存
  2. NSArray *subviews = [[NSArray alloc] initWithArray:cell.contentView.subviews];
  3. for (UIView *subview in subviews) {
  4. [subview removeFromSuperview];
  5. }

例如:

[cpp] view plaincopyprint?

    1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. static NSString *CellIdentifier = @"Cell";
    4. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    5. if (cell == nil) {
    6. cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
    7. reuseIdentifier: CellIdentifier];
    8. }else{
    9. //cell中本来就有一个subview,如果是重用cell,则把cell中自己添加的subview清除掉,避免出现重叠问题
    10. //         [[cell.subviews objectAtIndex:1] removeFromSuperview];
    11. for (UIView *subView in cell.contentView.subviews)
    12. {
    13. [subView removeFromSuperview];
    14. }
    15. }
    16. if (tableView == couponTableView) {
    17. //进入优惠券列表
    18. cell.textLabel.text = [NSString stringWithFormat:@"%@", [couponArry objectAtIndex:indexPath.row]];
    19. }
    20. else{
    21. //进入团购列表
    22. cell.textLabel.text = [NSString stringWithFormat:@"%@", [groupbuyArry objectAtIndex:indexPath.row]];
    23. }
    24. return cell;
    25. }
时间: 2024-10-06 00:12:01

ios之清除cell缓存,解决cell的重用问题。的相关文章

ios SDImageCache 清除所有缓存图片

我觉得奇怪,用官方给的下面方法就怎么也删除不了 [[SDImageCache sharedImageCache] clearDisk]; [[SDImageCache sharedImageCache] clearMemory]; 哎,干脆自己写个,反正很简单: #pragma mark 删除全部缓存图片 - (void)removeAllCacheImage { NSFileManager *fileManager = [NSFileManager defaultManager]; if ([

解决Cell重绘导致 重复的问题

IOS在Cell上的优化令人觉得底层框架的成熟,可是有些情形却会造成不必要的麻烦, 当使用了 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Identifier]; 有可能会造成画面重复的问题,此句的意思是,从tableView的队列里取出以"Identifier"名称的cell进行重用.所以问题必定会出现! 解决办法如下: UITableViewCell *cell = nil; if (!c

iOS开发项目篇—50设置cell的背景

iOS开发项目篇—50设置cell的背景 一.简单说明 当前样式: 1.去掉分隔线 2.设置背景图片(新浪提供了四种图片,底部的图片有阴影) cell的四种背景图 问题:cell怎么知道自己当前是处在第几组的第几行? 在自定义cell中提供一个方法,共外界传递当前的组和行 YYCommonCell.h文件 1 // 2 // YYCommonCell.h 3 // 4 5 #import <Foundation/Foundation.h> 6 @class YYCommonItem; 7 @i

iOS开发—清除缓存

iOS开发—清除缓存 一.修改了系统的头文件 报错示例: fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSArray.h' has been modified si

【iOS开发】关于UITableView的cell循环使用

如果没有让cell循环使用的话.每次展示数据就会有一个cell重新创建,并且如果展示过的数据再次展示还是会重新创建一cell,这样就会造成内存的浪费. 解决方法:就是让展示过的cell放入cel池中,每次需要用的时候就拿出来,换一下内容展示出来,滑动到屏幕以外就把这个cell再次放入cell池中等待下一个展示数据用.所以屏幕显示几个cell,这是cell一共需要创建这个多个+1. 比如上图中:屏幕能完整显示11个cell,那么就需要创建12的cell. 如果上上滑动,暴走萝莉出了屏幕,那么显示暴

iOS 8:【转】iOS UITextView 输入内容实时更新 cell 的高度

源地址:http://vit0.com/blog/2014/12/25/ios-textview-in-cell/ 这篇文章介绍了在一个动态数据的 table view 中,cell 根据 text view 内容的输入实时改变 cell 和 table view 的高度.自动计算 cell 高度的功能使用 iOS 8 才支持的自适应 cell,如果你还不知道 iOS 8 自适应 cell,可以参看这篇文章:iOS 8 自适应 Cell 先上图,我们最终要实现的效果是这样的: 图 1:实时更新

IOS第八天(7:UITableViewController新浪微博,cell 复用的简单写法优化和cell高度从模型中获取)

*********** #import "HMViewController.h" #import "HMStatus.h" #import "HMStatusCell.h" #import "HMStatusFrame.h" @interface HMViewController () /** 保存statusFrame模型的数组 */ @property (nonatomic, strong) NSArray *status

iOS开发项目篇—40搭建cell的基本结构

iOS开发项目篇—40搭建cell的基本结构 一.简单说明 1.策略:针对微博可能出现的多种情况(只有文字,有文字有配图,有转发微博等),一次性加载所用的子控件到cell中,对于没有数据的空间进行隐藏.(不管cell以后会显示什么子控件,把所有有可能显示的子控件都添加上去·添加到contentView上) 微博cell的显示示例: 2.自定义cell的步骤: 1.新建一个继承自UITablecell的子类 2.在initWithStyle:方法中进行子控件的初始化 (1)将有可能显示的所有子控件

2015 IOS tabelView分组、Xib、Cell——在蓝懿教育 学习笔记

TabelView分组.表头,表尾 删除vc 搭建tvc 分组界面中return 2 分2组: 在控制行加判断 如果section== 1  return10 (此时012 0123456789) 在sb中选中tv在style右样式改成Grouped 此时有了间隔 控制分组题头和尾.有个字符串 -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ return @"我

iOS UITableView表视图(3)自定义cell

1.自定义cell 2.多种cell 的混合使用 3.cell自适应高度 自定义cell就是创建一个UITableViewCell的子类. 把cell上的控件创建都封装在子类中,简化UIViewController中的代码 子视图控件添加到cell的contentView上 cell中的控件如何显示Model中的信息? cell中声明一个Model类型的属性,viewController中获取到Model对象后赋值给cell的Model属性,cell中重写Model的setter方法,把Mode