iPhone上的UIActivityIndicatorView存在问题
我想在我的iphone更改视图时显示UIActivityIndicatorView。 我编写了以下代码:iPhone上的UIActivityIndicatorView存在问题,iphone,objective-c,Iphone,Objective C,我想在我的iphone更改视图时显示UIActivityIndicatorView。 我编写了以下代码: - (void)viewDidLoad { spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; [spinner setCenter:CGPointMake(320/2.0, 460/2.0)]; //
- (void)viewDidLoad
{
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[spinner setCenter:CGPointMake(320/2.0, 460/2.0)]; // I do this because I'm in landscape mode
[self.view addSubview:spinner];
}
在按钮的点击事件中,我想改变视图,在此期间,我想显示指示器视图,所以,我写
-(IBAction)buttonClick:(id)sender
{
[spinner startAnimating];
ViewController *lController = [[ViewController alloc] initWithNibName: @"View" bundle:nil];
self.viewController = lController;
[lController release];
//
[[self mainController] dismissModalViewControllerAnimated:YES];
[lViewController.view removeFromSuperview];
[self.view addSubview: lController.view];
[spinner stopAnimating];
}
它没有显示指示器,所以请告诉我哪里错了?在
按钮中单击,看起来您正在添加lController.view
“在微调器的顶部”(在前面的viewDidLoad
中添加)。很难从你的片段中看出模态解雇是怎么回事,所以让我们假设这不是罪魁祸首
添加新的子视图后,您可以尝试调用[self.view bringsubview tofront:spinner]
,或者[self.view insertSubview:lController.view belowSubview:spinner]
将视图放在微调器下面。您可能还希望将微调器上的hidesWhenStopped
属性设置为YES
,以便在停止时自动隐藏
另一件需要记住的事情是,加载和切换视图实际上可能不会花费那么长的时间,因此如果事情发生得太快,微调器可能不会出现。在按钮中单击看起来您正在添加微调器的lController.view
“在顶部”(这是在viewdiload
之前添加的)。很难从你的片段中看出模态解雇是怎么回事,所以让我们假设这不是罪魁祸首
添加新的子视图后,您可以尝试调用[self.view bringsubview tofront:spinner]
,或者[self.view insertSubview:lController.view belowSubview:spinner]
将视图放在微调器下面。您可能还希望将微调器上的hidesWhenStopped
属性设置为YES
,以便在停止时自动隐藏
另一件需要记住的事情是,加载和切换视图实际上可能不会花费那么长的时间,因此,如果事情发生得太快,微调器可能不会出现。UIActivityIndicator在主线程上设置动画(动画帧随每次运行循环而变化)。如果启动、执行代码并停止,它将永远没有机会设置动画(因为它永远不会退出当前运行循环)
尝试在后台线程上运行代码。这将允许主线程处理动画帧。UIActivityIndicator在主线程上制作动画(每个运行循环的动画帧都会更改)。如果启动、执行代码并停止,它将永远没有机会设置动画(因为它永远不会退出当前运行循环)
尝试在后台线程上运行代码。这将允许主线程处理动画帧