UIActivityIndi​​cator只要实现功能

时间:2014-04-11 03:19:25

标签: ios objective-c uiactivityindicatorview

我想在函数上使用UIActivityIndi​​cator。

我正在实施一些核心过滤器,其中一些需要几秒钟才能实现。我希望UIActivityIndi​​cator根据功能启动和停止。

我在网上查了一下,但它主要是使用计时器。因此,这将使其硬连线,而不是基于实现该功能实际需要多长时间。

有人能告诉我一个小例子我该怎么做吗?

2 个答案:

答案 0 :(得分:1)

声明ActivityIndi​​cator

@property (nonatomic, strong) UIActivityIndicatorView *activityIndicatorView;

然后,

- (void)viewDidLoad 
{ 
  [super viewDidLoad];

  self.view.backgroundColor = [UIColor blackColor]; 

  // Do any additional setup after loading the view, typically from a nib. 
  CGRect frame = CGRectMake (120.0, 185.0, 80, 80);

  self.activityIndicatorView = [[UIActivityIndicatorView alloc] initWithFrame:frame];

  [self.view addSubview:self.activityIndicatorView];
}

使用此代码,您可以启动和停止activityIndi​​cator

[self.activityIndicatorView startAnimating];  //start
[self.activityIndicatorView stopAnimating];   //stop

答案 1 :(得分:0)

方法执行结束后,将执行所有UI动画和导航。因此,如果您希望此类功能用于计时器或调度队列。

如下

UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithFrame:self.window.frame];
    [activity startAnimating];
    //Your methods to be executed
    double delayInSeconds = 0.01;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        [activity stopAnimating];
    });

在此方法执行当前方法执行后保存在队列中,将执行写入dispatch_time_t的方法。