请教由UITableViewCell的重绘机制导致的列状态问题解决办法
情况是这样,我自定义了一个uitableviewcell封装类,里边有progressbar,那么在使用这个自定义cell列表时(有8条记录),每个cell都要显示事实的某类型进度.
默认初始化时是正常的,但当我纵向向下滑动,显示了下边的第八条cell之后,再向上滑动显示第一条时,该cell被重绘,回到了初始化时的状态,请问如何去解决呢?
[解决办法]
这是因为采用了cell复用模式,解决方法两种
1:不采用复用的cell
2:刷新cell时,删除cell内的内容。
[解决办法]
用自带的代理来处理
id <UITableViewDataSource> dataSource;
id <UITableViewDelegate> delegate;
试试~
[解决办法]
cellforindexth{
if(cell ==nil)
{
cell 创建
绘画 uiprogress
progress。tag=x
addsubview
}
这里 开始设置一些具体的cell数值
}
你的问题我前段时间也碰到过。。。因为每次下拉或者上拉都会重新去绘画CELL,所以你需要对CELL进行一个判断。如果已经存在了,怎么操作,不存在该怎么操作
[解决办法]
static NSString *imageCellIdentifier = @"imageCell";
...
cell = [tableView dequeueReusableCellWithIdentifier:imageCellIdentifier];
这种为复用
cell = [[[UserCellView alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:imageCellIdentifier] autorelease];
这种为不复用
疑问:
不知道楼主的progressbar初始化和绘制写在了自定义的UserCellView的哪里。
建议把自定义的UserCell的代码贴出来,问题应该是在那里面
[解决办法]
复用可以有效减少内存。每次激活返回cell的函数,进行赋值。其实主要是对应表格的数据源里记录progressbar的进度即可。
[解决办法]