我正在为所有表视图单元格添加循环自定义进度视图,如下所示。
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// progressView = (M13ProgressViewPie *)[cell viewWithTag:100];
progressView = [[M13ProgressViewPie alloc] initWithFrame:CGRectMake(0.0, 0.0, 50.0, 5.0)];
progressView.tag = indexPath.row;
NSLog(@"%ld",(long)progressView.tag);
// Configure the progress view here.
[progressView setAnimationDuration:10.0];
// Add it to the view.
[cell.contentView addSubview: progressView];
// Update the progress as needed
[progressView setProgress: 1.0 animated: YES];
我想在nstimer为10秒后重新加载循环进度
[NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(updateUI) userInfo:nil repeats:YES];
并在updateUI方法中我删除了单元格内容视图子视图。
有了这个,我只能重新加载最后一个单元格进度视图。它不适用于所有细胞。
答案 0 :(得分:0)
在CellForRowAtIndextPath
中if(isProgressRemove) {
NSArray* subviews = [cell.contentView subviews];
for (UIView *view in subviews) {
if((view isKindOfClass:[M13ProgressView class])) {
[subview removeFromSuperview];
}
}
}
ViewDidLoad中的
- (void)updateUI {
isProgressRemove = yes;
[self.tableView reload];
isProgressRemove = NO;
}
答案 1 :(得分:0)
您的代码存在很大问题。您可以向同一单元格添加许多进度视图。之所以发生这种情况,是因为表视图无需修改即可重复使用单元格 如果重复使用单元格,则会向其添加第二个进度视图。您应该检查此方法是否单元格包含进度视图。例如,您可以使用以下代码:
<...>
UIView* currentProgressView = [cell.contentView viewWithTag:100];
if (currentProgressView)
{
//remove or update progress value
}
else
{
//create if needed
}
<...>