我想在按钮操作上启动忙指示符,我在IB操作中使用以下代码:
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 :(得分: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 :(得分:1)
正如我从你给定的代码中了解到的那样,你首先在一些UIViewController和你添加UIActivityIndicatorView的地方,然后你做了两个条件if-else你初始化另外两个UIViewController所以在这个视图中(在if-else之后生成)您将UIActivityIndicatorView添加为
时将如何显示 [self.view addSubview:busyIndicator]; // spinner is not visible until started
请定义使用if语句执行的函数。?
保持编码
答案 2 :(得分:0)
当您在单个方法中启动和停止busuIndecator时,没有任何长时间处理,因此两个函数都在milisecons中执行,因此您无法在UI上看到busyIndecator。 在UI上显示busyIndecator或任何插座。 我应该有一段时间跨度是人类可识别的。 像:
[busyIndicator startAnimating];
//Do EXTREME PROCESSING!!!
[busyIndicator stopAnimating];