我正在向表格单元格添加UIProgressView,如下所示:
UITableViewCell *cell = [videosTable cellForRowAtIndexPath:[NSIndexPath indexPathForRow:(long)videoIndex inSection:0]];
UIProgressView *prg =[[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
prg.tag = (long)videoIndex + 1000;
[cell addSubview:prg];
我稍后(在AppDelegate.m中)尝试使用以下内容访问此进度条:
UITableView *table = (UITableView *)[self.videosTableController.view viewWithTag:8888];
UITableViewCell *cell = [table cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
UIProgressView *progressBar = (UIProgressView *)[cell viewWithTag:index+1000];
return progressBar; //this always is nil.....
发生了什么事?我已经确认table
和cell
没有返回nil,但UIProgressView似乎不在单元格中。我已经遍历了单元格的子视图,但看不到进度条。
答案 0 :(得分:0)
您应该设置prg.tag = (long)videoIndex + 1000;
在tableView:cellForRowAtIndexPath:
这是因为[table cellForRowAtIndexPath:]
在某些情况下可能会从tableView:cellForRowAtIndexPath:
返回新的单元格实例。
因此,你应该在tableView:cellForRowAtIndexPath:
内区分你需要的那种细胞(有无进展),创建一个合适的细胞,配置它并返回。