情况是这样,我自定义了一个uitableviewcell封装类,里边有progressbar,那么在使用这个自定义cell列表时(有8条记录),每个cell都要显示事实的某类型进度.
默认初始化时是正常的,但当我纵向向下滑动,显示了下边的第八条cell之后,再向上滑动显示第一条时,该cell被重绘,回到了初始化时的状态,请问如何去解决呢?
默认初始化时是正常的,但当我纵向向下滑动,显示了下边的第八条cell之后,再向上滑动显示第一条时,该cell被重绘,回到了初始化时的状态,请问如何去解决呢?
解决方案 »
- 跟iphone主界面宫格类似的视图应该如何实现呢?
- iphone把sqlite中的数据显示到页面中?
- 照片库权限关闭,第二次使用照片库的时候加判断是否为关闭状态,关闭状态,提示用户打开设置
- sqlite 的图片存取 帮帮忙啊
- ios如何启动浏览器定位
- 一个苹果开发者账号能建立几个APNS证书呀?
- 在点击tableview的某一行的时候 怎么切换scrollview里的图片
- iOS10 tabbar消失不见?
- iOS集成app支付宝,在读取私钥的时候发生野指针问题 导致程序崩溃
- iOS MQTT订阅主题时接收的消息一直为NULL
- cocoa 原始图像数据以视频显示
- 有没有在另外一个类之中继续定义一个宏的方法
1:不采用复用的cell
2:刷新cell时,删除cell内的内容。
id <UITableViewDataSource> dataSource;
id <UITableViewDelegate> delegate;
试试~
把 Reuse Identifier 相关的代码去掉。
但是不推荐这种方式。
--------------------------
想做一个音乐下载应用
app内有若干个tabbar标签,其中一个是下载列表,点击下载按钮后开始下载,那么如果现在切换到其他标签,下载完成如何通知用户呢? 或者说其他标签如何能知道下载的情况呢?我想的是在后台创建一个下载线程(队列),把要下载的文件加入队列,对应一个全局数据记录下载进度.. 请教可行性 要考虑到列表实时显示下载进度,并且是多记录下载,tableview滚动时的cell重载也要正常显示--------------------------
代码就是普通的tableview显示的模式,其中唯一不同的是要显示当前的下载进度百分比.
{
cell 创建
绘画 uiprogress
progress。tag=x
addsubview
}
这里 开始设置一些具体的cell数值}你的问题我前段时间也碰到过因为每次下拉或者上拉都会重新去绘画CELL,所以你需要对CELL进行一个判断。如果已经存在了,怎么操作,不存在该怎么操作
...
cell = [tableView dequeueReusableCellWithIdentifier:imageCellIdentifier];这种为复用cell = [[[UserCellView alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:imageCellIdentifier] autorelease];这种为不复用疑问:
不知道楼主的progressbar初始化和绘制写在了自定义的UserCellView的哪里。
建议把自定义的UserCell的代码贴出来,问题应该是在那里面
没有问题,只是你要在返回的cell函数里每次进行赋值。如果不赋值,那么就有可能之前用过cell对应数据的值。
如果是这样,那就需要用NSTimer来定时刷新状态是吧? 那么这个Timer写在view里合适呢?还是写在自定义cell里?
有progressbar的显示后也要即时刷新的.
给你附加上我之前项目的一段代码
static NSString *identifier = @"etuancell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell) {
//cell = [[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:identifier];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}else{
// 删除cell中的子对象,这一段是避免刷新问题的。
while ([cell.contentView.subviews lastObject] != nil) {
[(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];
}
}
这一段在cell上绘制内容
UILabel *nameLable = [[UILabel alloc] initWithFrame:CGRectMake(50, 196, 250, 50)];
NSString *shopName = [[NSString alloc] initWithFormat:@"[%@][%@] %@",[item1 shopname],[item1 area],[item1 name]];
nameLable.numberOfLines = 2;
[nameLable setText:shopName];
nameLable.textAlignment = UITextAlignmentLeft;
nameLable.backgroundColor = [UIColor clearColor];
[nameLable setFont:[UIFont fontWithName:@"Arial" size:20.0f]];
[cell.contentView addSubview:nameLable];
http://blog.csdn.net/ugg/article/details/7237902
一个项目中有100个UITableViewCell, 如果不用复用机制,那么内存吃得紧,可能崩溃喔 。那就必须要用了,那又该怎么样解决呢?