5秒钟的活动指示器?

4

我试图在 viewdidappear 方法中运行 UIActivityIndicator 5秒钟,但是如何为活动指示器(5秒)设置时间限制?

这是 UIActivityIndicator 的代码:

 UIActivityIndicatorView *activityView=[[UIActivityIndicatorView alloc]     initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

    activityView.center=self.view.center;

    [activityView startAnimating];

    [self.view addSubview:activityView];
4个回答

5

只需一行代码,无需其他依赖和条件:

[activityView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:5.0];

removeFromSuperview是一个系统方法,对吧? - Navi
@user2439088 它完美地工作了,它对你不起作用吗? - Prasad Devadiga
removeFromSuperview是一个UIView函数,因此它适用于任何UIView子类(包括UIActivityIndicatorView)。@user2439088,您将此代码放在哪里? - Alexander

4

设置活动视图在停止时自动隐藏

activityView.hidesWhenStopped = YES;

并且像这样在5秒后隐藏它:

[activityView performSelector:@selector(stopAnimating) withObject:nil afterDelay:5.0];

如果您将来需要重新开始动画并保留对 UIActivityIndicatorView 的指针,只需调用 startAnimating 即可。

如果您只需要显示活动指示器一次并且不再使用它,Alexanders 的答案最适合您的需求。


0

试试这段代码,

  -(void)viewDidAppear:(BOOL)animated
{
        UIActivityIndicatorView *activityView=[[UIActivityIndicatorView alloc]     initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
        activityView.center=self.view.center;
        [self.view addSubview:activityView];
        [activityView startAnimating];
        activityView.tag=1111;
        [activityView release];
}   


    [activityView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:5.0];

    -(void)removeFromSuperview
    {
            UIActivityIndicatorView *activityView=(UIActivityIndicatorView*)[self.viewviewWithTag:1111];
            [activityView stopAnimating];
[activityView removeFromSuperview];
        }

0
使用NSTimer进行5秒计时。 在定时器的回调方法中停止动画。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接