2012-07-25 48 views
1

我要开始按钮的动作示忙,我用IB行动,下面的代码:如何在iOS上的按钮操作上显示繁忙的指示灯?

busyIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
busyIndicator.center = self.view.center; 
[busyIndicator setColor:[UIColor redColor]]; 
[self.btnInjuryPrevention addSubview:busyIndicator]; 
[self.view addSubview:busyIndicator]; // spinner is not visible until started 

[busyIndicator startAnimating]; 
if(![AppStatus isAppOnline]) { 
    noInternetViewController = [[NoInternetViewController alloc] initWithNibName:@"NoInternetViewController" bundle:[NSBundle mainBundle]]; 
    noInternetViewController.view.tag = CHILD_CONTROLLER_TAG; 
    [self.navigationController pushViewController:noInternetViewController animated:YES]; 
    NSLog(@"Yoy are offline..>!!"); 
} 
else 
{ 
    mInjuryPreventionViewController=[[InjuryPreventionViewController alloc] initWithNibName:@"InjuryPreventionViewController" bundle:nil withHeader:@" Injury Prevention" withId:INJURY_PREVENTION_ID]; 
    mInjuryPreventionViewController.view.tag = CHILD_CONTROLLER_TAG; 
    [self.navigationController pushViewController:mInjuryPreventionViewController animated:YES]; 
    //[mInjuryPreventionViewController release]; 
} 
// [self removeLoadingView]; 
[busyIndicator stopAnimating]; 

我上面的代码中使用,但忙碌的指示灯将无法启动,所以,你可以告诉我这是可能的吗?

+0

请显示整个方法。该方法是否在'[busyIndi​​cator startAnimating]之后立即结束;'? – dasblinkenlight 2012-07-25 10:20:50

+0

尝试'UIActivityIndi​​catorViewStyleGray',你可能看不到指示器,因为我相信它已经在iOS 4中失去了阴影。 – 2012-07-25 10:23:15

+0

确保你设置了活动指示器的框架 - 我相信初始化框架等于CGRectZero。 – 2012-07-25 10:30:06

回答

4

如果您在一个块中启动和停止动画,您将看不到任何内容。你可以将startAnimating方法看作是“当控制权返回到操作系统时开始动画。”

不清楚为什么你需要一个微调。创建视图控制器需要很长时间吗?不过,如果你移动视图控制器的东西到一个新的方法,你可以这样做:

... 
// create busy indicator 
[busyIndicator startAnimating]; 
[self performSelector:@selector(createViewController) withObject:nil afterDelay:0]; 

... 

// at the end of the createViewController method... 
[busyIndicator stopAnimating]; 
1

正如我从你的给定的代码首先你是在一些UIViewController和你在哪里添加你的UIActivityIndi​​catorView,并在所有你做两个条件if-else你在哪里初始化其他两个UIViewController,所以在这个视图(在if-else之后生成) )你UIActivityIndi​​catorView将如何显示为您添加它作为

[self.view addSubview:busyIndicator]; // spinner is not visible until started 

请定义函数if语句执行?

保留编码

0

当你开始和回采的busuInde​​cator在一个单一的方法,没有任何长的处理,这样既功能milisecons内执行所以你无法在用户界面上看到busyIndecator。 在UI上显示busyIndecator或任何插座。 我应该有一段时间,这是人类可识别的。 Like:

[busyIndicator startAnimating]; 
//Do EXTREME PROCESSING!!! 
[busyIndicator stopAnimating]; 
相关问题