animationDidStop设置但未被调用(iPhone应用程序编码)

时间:2009-07-20 07:03:39

标签: iphone objective-c cocoa cocoa-touch animation

#import "MyViewController.h"

@implementation MyViewController
@synthesize menuView, gameView, helpView, optionsView, gameButton, helpButton, optionsButton;

- (void) viewDidLoad {
[self setView:menuView];
}

 - (IBAction)gotoGame {
[UIView beginAnimations:@"buttonSlide" context: nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationDidStopSelector:@selector(animationDidStop)];
gameButton.center = CGPointMake(104,1000);
[UIView commitAnimations];
 }

- (IBAction)gotoHelp {
[self setView:helpView];
}

- (IBAction)gotoOptions {
[self setView:optionsView];
}

- (void)animationDidStop {
NSLog(@"why is this not working?");
[self setView:gameView];
}


@end

不确定什么会有用,所以我包含了整个.m文件。无论如何,我是iPhone应用程序开发的新手,我正在努力完成我的动画。动画本身工作得很完美但是方法animationDidStop拒绝被调用。即使我使用setAnimationDidStopSelector就像它在文档中所示。我知道视图更改有效,因为当我在gotoGame {}中的动画之后将其切换时,它会切换,但这样就不会显示动画。

有人可以帮助我在动画停止后调用该方法,或者在必要时间之后使用计时器调用它吗? (我也尝试过这种方法而没有运气)。

2 个答案:

答案 0 :(得分:3)

不仅必须调用[UIView setAnimationDelegate:self],而且如果动画的调用方法是静态的,则委托也必须是静态的。大多数示例使用非静态方法来调用动画,因此如果您使用静态方法进行动画处理,这可能会让人感到困惑(至少对我而言)。

答案 1 :(得分:2)

添加[UIView setAnimationDelegate:self];