Objective c UIActivityIndicator不设置动画

Objective c UIActivityIndicator不设置动画,objective-c,ios,multithreading,Objective C,Ios,Multithreading,微调器显示为冻结状态,并且不会开始设置动画 编辑:好的,我找到了原因,但还没有找到解决办法 此视图控制器通过页面卷曲转换推入导航控制器堆栈: - (void) viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.connectionIndicator = [[[UIActivityIndicatorView alloc] initW

微调器显示为冻结状态,并且不会开始设置动画

编辑:好的,我找到了原因,但还没有找到解决办法

此视图控制器通过页面卷曲转换推入导航控制器堆栈:

- (void) viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    self.connectionIndicator = [[[UIActivityIndicatorView alloc]
                                initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
    [self.view addSubview:connectionIndicator];

    [self.connectionIndicator setCenter:CGPointMake(self.view.frame.size.width/2, 15)];
    [connectionIndicator startAnimating];
}
移除上面的卷曲过渡(如下所示)可以解决微调器冻结问题

ServerHandshakeViewController *shvc = [[ServerHandshakeViewController alloc] initWithHost:h];
[UIView  beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1.0];
[self.navigationController pushViewController:shvc animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
[shvc release];

但是,如果我想保留卷曲页面转换,该怎么办?

您可以尝试使用块方法,在该方法中可以指定动画选项。UIViewAnimationOptionAllowAnimatedContent是应该释放微调器的选项

ServerHandshakeViewController *shvc = [[ServerHandshakeViewController alloc] initWithHost:h];
[self.navigationController pushViewController:shvc animated:NO];
[shvc release];

可以尝试使用块方法,在其中可以指定动画选项。UIViewAnimationOptionAllowAnimatedContent是应该释放微调器的选项

ServerHandshakeViewController *shvc = [[ServerHandshakeViewController alloc] initWithHost:h];
[self.navigationController pushViewController:shvc animated:NO];
[shvc release];

connectionIndicator
==
self.connectionIndicator
?@berylium:是的,它们与您的问题一样,标记为
多线程。也许,你在主线程中执行了一些长任务,它会冻结你的程序。@铍:是的,这可能是一种可能性,但我想这里不是这样的。相反,原因是从上一个视图控制器到这个视图控制器的页面卷曲动画-我已经更新了我的问题
连接指示器
=
self。连接指示器
?@berylium:是的,它们与标记为
多线程
的问题相同。也许,你在主线程中执行了一些长任务,它会冻结你的程序。@铍:是的,这可能是一种可能性,但我想这里不是这样的。相反,原因是从上一个视图控制器到这一个的页面卷曲动画-我已经更新了我的问题-我尝试了这个,但没有任何运气。谢谢你的建议,虽然我试过了,但运气不好。谢谢你的建议