小编use*_*466的帖子

如何为每个单元添加UIActivity指示器并保持对每个单独指示器的控制

我正在尝试在我的UITableView中的某些单元格中添加一个活动指示器.我在方法didSelectRowAtIndexpath中成功地使用了

    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];
Run Code Online (Sandbox Code Playgroud)

我需要从另一种方法控制这些多个活动指标.我认为一个属性是一种方法来做到这一点,但每次初始化一个新的actIndicator实例,我将参考文献除了活动指示符的"最新"初始化之外的所有内容,因此意味着我只能控制一个.

我需要做什么(如果可能的话?)来保持对所有actIndicators的引用,这样我就可以开始动画所有这些了吗?或者我可以以某种方式使用actindicator.tag来控制某种形式的引用.

非常感谢任何帮助.

编辑:(来自答案)访问tableView中标记为1的所有活动实例指标(仅限可见单元格)可以使用下面的另一种方法:

for (UITableViewCell *cell in [self.tableView visibleCells]) {
    UIActivityIndicatorView *actView = (UIActivityIndicatorView *)[cell.contentView
    viewWithTag:1];
    [actView startAnimating];
    activityFlag = 1;

}
Run Code Online (Sandbox Code Playgroud)

上述方法将遍历所有可见单元格并开始为活动指示器设置动画.

为了处理滚动的tableview的情况,我使用下面的方法重新设置指标的动画,该方法位于cellForRowAtIndexPath中.cellStateKey只是指示单元格旁边是否有复选标记,如果它有复选标记并且我的activityflag(正在进行异步网络服务器调用)已设置..那我想继续设置动画.(技术上重新启动动画,作为滚动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]; …
Run Code Online (Sandbox Code Playgroud)

iphone uiactivityindicatorview ios

2
推荐指数
1
解决办法
4250
查看次数

标签 统计

ios ×1

iphone ×1

uiactivityindicatorview ×1