优雅检测ActivityIndi​​cator启动/停止动画

时间:2012-03-28 08:16:47

标签: iphone objective-c ios uiactivityindicatorview

手头的应用程序在UINavigation中堆叠了几个viewControllers。

每个视图都可以调用将触发单个活动指示器的内部操作(每个视图一个活动指示器)。

问题:有一个优雅的方法来设置一个中央代码,可以检测不同的活动指标何时开始/停止?

我认为一个好的中心点是代表,我正在寻找一个干净,高效且最重要的解决方案。

2 个答案:

答案 0 :(得分:0)

您可以为所有View控制器创建一个通用的View Controller,并在您触发活动指示器的所有Views中继承它...

然后,您可以根据自己的观点维护堆栈的活动指标。您可以存储NSMutableArray以跟踪您正在开始和停止的活动指示器。

另一种方法是你也可以使用NSMutableDictionary,这样你就可以将活动指示器的标志及其父视图作为其键存储。

一切顺利!!!

答案 1 :(得分:0)

在您的委托中创建活动指示器视图并添加它,使其始终位于视图的前面并隐藏它。

在委托的界面中创建一个计数器 int activityCounter;

在您的代理上创建一个方法,例如

-(void)startActivityIndicator {
    activityCounter++;
    activityView.hidden = NO;
}

另一个完成

-(void)stopActivityIndicator {
    activityCounter--;
    if (activityCounter <= 0)
        activityView.hidden = YES;
}

然后在您的视图控制器中,当您启动需要显示指示符的活动时,您可以在代理上调用startActivityIndicator,并在完成后调用stopActivityIndicator。这也将处理您可能有多个重叠活动的情况,并且您希望活动指示器保持可见状态,直到它们全部完成。