我想要一个活动的指标在我的UITableView添加到某些细胞的控制。我成功做到这一点的方法didSelectRowAtIndexPath方法使用如何添加一个UIActivity指标,以每一个细胞和维护每个个体指标
CGRect CellFrame = CGRectMake(260, 10, 20, 20);
actindicator = [[UIActivityIndicatorView alloc]initWithFrame:CellFrame];
[actindicator setHidesWhenStopped:NO];
[actindicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
actindicator.tag =1;
[[cell contentView] addSubview:actindicator];
美中不足的是,我需要控制从另一种方法,这些多重活动指标。然而,我想通过初始化一个新的actIndicator实例来实现这一点,但我忽略了除了活动指示符的'最新'初始化之外的所有参考,这意味着我只能控制一个。
什么我需要在这里(如果甚至可能吗?)做,以保持参考所有actIndicators这样我就可以开始制作动画,所有的阶段? 或者我可以以某种方式使用actindicator.tag来控制某种形式的参考。
非常感谢任何帮助。
编辑:(来自应答所得出)来访问活动指示符的所有实例与1中的tableView标签(可见细胞只)可以从另一方法如下使用方法:
for (UITableViewCell *cell in [self.tableView visibleCells]) {
UIActivityIndicatorView *actView = (UIActivityIndicatorView *)[cell.contentView
viewWithTag:1];
[actView startAnimating];
activityFlag = 1;
}
上述意愿的方法循环遍历所有可见的单元格并开始动画指示器的动画。
为了处理的tableview的情况下被滚动,我重新使用动画下面这是在的cellForRowAtIndexPath方法中的指标。 cellStateKey只是表示单元格旁边是否有复选标记,如果它有一个复选标记,并且我的活动标记(正在进行异步Web服务器调用)被设置为..然后我想继续动画(技术上重新启动动画,如滚动tableview停止吧)
if ([[rowData objectForKey:cellStateKey] boolValue]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
if(cell.accessoryType == UITableViewCellAccessoryCheckmark &&activityFlag ==1){
for (UIView *sub in [[cell contentView] subviews]) {
if (sub.tag == 1) {
UIActivityIndicatorView *acView = (UIActivityIndicatorView *)
[cell.contentView viewWithTag:1];
[acView startAnimating];
}
}
正如原始的问题提到我初始化我的活动指标(和方法didSelectRowAtIndexPath方法
非常感谢!虽然这段代码确实可以让你从另一种方法访问activityIndicators,这种方法最终是我所追求的。我用它在滚动后重新制作指标。 – user1144466 2013-05-09 04:11:31