本文介绍了不调用AnimationDidStop的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的animationDidStop方法由于某种原因未被调用,起初我以为是因为未设置委托,但补救了我仍然遇到同样的问题.有任何想法吗?在此先感谢:)
My animationDidStop method is not being called for some reason, initially I thought it was because the delegate was not set but having remedied that I'm still having the same problem. Any ideas? thanks in advance :)
- (void)hideInterfaceButtonClicked : (id) sender { [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(animationDidStop)]; [UIView beginAnimations:@"MoveView" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; [UIView setAnimationDuration:0.5]; // Move to the right CGAffineTransform translateInterface = CGAffineTransformMakeTranslation(454,288); // Scale CGAffineTransform scale = CGAffineTransformMakeScale(0.20,0.20); // Apply them to the view self.transform = CGAffineTransformConcat(scale, translateInterface); self.alpha = 0.0; [UIView commitAnimations]; } - (void)animationDidStop { NSLog(@"Animation Has Stopped"); [[NSNotificationCenter defaultCenter] postNotificationName:@"hiddenInteraceViewNeeded" object:self]; //after MoveView finishes } 推荐答案您可以使用新的(iOS4 +)块语法:
You could achieve what you want by using the new (iOS4+) block syntax:
[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationCurveEaseIn animations:^{ // Move to the right CGAffineTransform translateInterface = CGAffineTransformMakeTranslation(454,288); // Scale CGAffineTransform scale = CGAffineTransformMakeScale(0.20,0.20); // Apply them to the view self.transform = CGAffineTransformConcat(scale, translateInterface); self.alpha = 0.0; } completion:^(BOOL finished) { NSLog(@"Animation Has Stopped"); [[NSNotificationCenter defaultCenter] postNotificationName:@"hiddenInteraceViewNeeded" object:self]; //after MoveView finishes }];更多推荐
不调用AnimationDidStop
发布评论