如何停止动画并加载下一个视图

时间:2014-02-21 03:51:52

标签: iphone objective-c core-animation

我有一个视图控制器在应用程序启动时显示一些图像,但我不知道如何在循环完成后告诉它转到TableViewController ......

这是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    launchAnimation.animationImages = [NSArray arrayWithObjects:
                                          [UIImage imageNamed:@"Animation1.png"],
                                          [UIImage imageNamed:@"Animation2.png"],
                                          nil];

    [launchAnimation setAnimationRepeatCount:1];
    launchAnimation.animationDuration = 10;
    [launchAnimation startAnimating];
    how to go to a TableViewController? ??????


}

感谢。

2 个答案:

答案 0 :(得分:0)

首先,您过早地运行此代码。 viewDidLoad表示您的视图甚至还没在界面中!在开始设置动画之前以及在考虑导航到其他视图之前,让视图有机会进入界面。

其次,我们来定义问题。是否要进行此动画并然后导航?然后,您需要在导航前延迟10秒(因为这是动画需要多长时间)。所以你可以使用延迟性能来做到这一点。

或者,使用Core Animation或者观看动画,而不是UIImageView动画,因为它们会在完成动画时给你一个回调(而UIImageView动画,正如我认为你已经意识到的那样,没有)。

答案 1 :(得分:0)

这很简单..

NSArray *arrImages=[NSArray arrayWithObjects: [UIImage imageNamed:@"Animation1.png"], [UIImage imageNamed:@"Animation2.png"], nil];
[launchAnimation setAnimationImages:arrImages];

float animationDuration=10.0f;
int repeatCount=1;
int totalImages=[arrImages count];

[launchAnimation setAnimationRepeatCount:repeatCount];
[launchAnimation setAnimationDuration:animationDuration];
[launchAnimation startAnimating];

float delayTime= animationDuration* repeatCount* totalImages;
[self performSelector:@selector(gotoTableViewController) withObject:Nil afterDelay: delayTime];

-(void)gotoTableViewController
{
    //push TableViewController Here
}