0

当在 UITableViewCell 中选择一行时,我有一个操作可能需要一两秒钟。当用户选择我正在做某事的单元格时,我想给他们反馈。目前它只显示 tableviewcell 突出显示。我在视图中添加了 UIActivityIndi​​catorView。我默认是隐藏的。我尝试在我的 didSelectRowAtIndexPath 中执行此操作:

{
CustomCell *cell = (CustomCell *)[tableView cellForRowAtIndexPath:indexPath];
            cell.activityIndicator.hidden = NO;
            [cell.activityIndicator startAnimating];

// do long task

            [cell.activityIndicator stopAnimating];
            cell.activityIndicator.hidden = YES;
}

此代码未显示我的活动指示器。如果我删除

activityIndicator.hidden = YES;

在里面

setCustomObject:(id)newObject

在我的 CustomCell 类中,我确实看到了指标。虽然它只是静态的。我想隐藏它,直到他们单击单元格,在长任务运行时制作动画,然后在长任务结束时停止动画并再次隐藏。有什么想法吗?谢谢!

4

2 回答 2

3

尝试在主线程中更新活动指示器

dispatch_async(dispatch_get_main_queue(), ^{
    cell.activityIndicator.hidden = NO;
    [cell.activityIndicator startAnimating];       
 });

 //do long task

 dispatch_async(dispatch_get_main_queue(), ^{
    cell.activityIndicator.hidden = YES;
    [cell.activityIndicator stopAnimating];       
 });
于 2012-05-03T00:26:46.830 回答
0

在 setCustomObject:(id)newObject 方法中,不要将其设置为隐藏,请尝试以下操作:

activityIndicator.hidesWhenStopped = YES;
[acitivtyIndicator stopAnimating];

然后在 didSelectRowAtIndexPath 方法中,去掉设置“隐藏”与否的代码,只需使用 [activityIndi​​cator startAnimating] 或 [activityIndi​​cator stopAnimating] 来控制动画和是否隐藏。

于 2012-05-03T00:23:02.000 回答