我有一个非常奇怪的问题。在我开发的iOS应用程序中,在运行下面的动画后,我发现UI的各种其他元素现在只要它们出现就会生成动画。
例如,一旦运行下面的这些动画,每次我导航到我的应用程序中的新选项卡时,所有UI元素都会从iphone的左上角动画到正确的位置。我在其他标签中没有为这些UI元素指定动画,事实上,即使是我无法访问的元素,比如iPhone状态栏中的活动指示器,也会开始自行制作动画。
发生了什么事?为什么只有在执行下面的动画后才会发生这种情况?在运行此动画之前(按下按钮)其他应用程序选项卡中的所有其他UI元素在出现时都不会显示动画,这是预期的行为。
- (IBAction) btnChosenPostcodeClicked:(id)sender {
//prep animations
startView.alpha = 1.0;
postcodeView.alpha = 0.0;
[self.view addSubview:postcodeView];
[UIView beginAnimations:@"ChosenPostcodeAnimation01" context:nil];
[UIView setAnimationDuration:animationSpeed];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.view cache:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(chosenPostCodeFadeoutAnimationDone:finished:context:)];
startView.alpha = 0.0;
[UIView commitAnimations];
}
- (void)chosenPostCodeFadeoutAnimationDone:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
//prep animations
postcodeView.alpha = 0.0;
[UIView beginAnimations:@"ChosenPostcodeAnimation02" context:nil];
[UIView setAnimationDuration:animationSpeed];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.view cache:YES];
CGRect newRect = CGRectMake(42, 157, 239, 180);
imvBubble.frame = newRect;
postcodeView.alpha = 1.0;
}
答案 0 :(得分:3)
你错过了
[UIView commitAnimations];
在selectedPostCodeFadeoutAnimationDone中,所以你所做的一切都成为了动画的一部分!