活动指示器不立即开始动画

时间:2011-12-15 14:25:52

标签: iphone uiactivityindicatorview

我初始化一个活动指示器,然后在一个按钮按下动作中,我开始动画并调用下一个视图进行显示。

-(IBAction) downloadButtonPressed:(id)sender {

    NSLog(@"Download Button Pressed");
    indicator.hidden = NO;
    [indicator startAnimating];

    if (addviewcontroller == nil)
        addviewcontroller = [[AddViewController alloc]init];
    [self.view addSubview:addviewcontroller.view];

    [addviewcontroller setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
    [self presentModalViewController:addviewcontroller animated:YES];

}

按下按钮时,活动指示灯不会立即启动。它在调用另一个视图时启动。指示器显示一秒钟,但是当按下按钮时,需要一些时间来加载另一个视图。

我不知道为什么指示器会在没有启动的情况下显示一秒钟。

1 个答案:

答案 0 :(得分:7)

试试这个:

-(IBAction) downloadButtonPressed:(id)sender 
{
    NSLog(@"Download Button Pressed");
    indicator.hidden = NO;
    [indicator startAnimating];
    [self performSelector:@selector(showController) withObject:nil afterDelay:0.1f];
}

- (void)showController {

    if (addviewcontroller == nil)
        addviewcontroller = [[AddViewController alloc]init];
    [self.view addSubview:addviewcontroller.view];

    [addviewcontroller setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
    [self presentModalViewController:addviewcontroller animated:YES];
}

应该这样做; - )

修改

我刚注意到您的代码存在问题,您要添加addviewcontroller两次。一个是将其添加为实际视图控制器的子视图,另一个是通过模态呈现另一个视图控制器。您应该从此函数中删除其中一个语句。