2011-06-09 57 views
2

Sample on GitHub动画没有开始没有视图更新

我有一个奇怪的问题。

我有基于导航的应用程序与两个UIViewControllers和卷曲效果之间的过渡。

我加入栏按钮,并添加自定义操作:

-(IBAction)pushPage 
{ 
    NSLog(@"push page"); 
    SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
    [UIView beginAnimations:@"animation" context:nil]; 
    [UIView setAnimationDuration:0.75]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.navigationController.view cache:NO]; 
    [self.navigationController pushViewController:secondView animated:NO]; 
    [UIView commitAnimations]; 
    [secondView release]; 
} 

在SecondView我有一个动作的按钮:

-(IBAction)back 
{ 
    [imageAnimationIssueAppDelegate backPage]; 
} 

方法backPage中的AppDelegate:

-(void)backPage 
{ 
    NSLog(@"backPage"); 
    [UIView beginAnimations:@"animation" context:nil]; 
    [UIView setAnimationDuration:0.75]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:NO]; 
    [self.navigationController popToRootViewControllerAnimated:NO]; 
    [UIView commitAnimations]; 
} 

问题: 在RootView上我有UIImageView ani mation:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    animImage.animationImages = [NSArray arrayWithObjects: 
          [UIImage imageNamed:@"1.png"], 
          [UIImage imageNamed:@"2.png"], 
          [UIImage imageNamed:@"3.png"], 
          [UIImage imageNamed:@"4.png"],         
          [UIImage imageNamed:@"3.png"], 
          [UIImage imageNamed:@"2.png"], 
          nil]; 
    animImage.animationDuration = 0.5; 
    animImage.animationRepeatCount = 0; 
} 

viewDidAppear启动:

- (void)viewDidAppear:(BOOL)animated 
{ 
    NSLog(@"First view - viewDidAppear"); 
    [super viewDidAppear:animated]; 
    [animImage startAnimating]; 
} 

我阻止它在viewDidDisapear

- (void)viewDidDisappear:(BOOL)animated 
{ 
    NSLog(@"First view - viewDidDisappear"); 
    [super viewDidDisappear:animated]; 
    [animImage stopAnimating];  
} 

当我回来从SecondView动画采空!但[animImage isAnimating]YES! 它不会启动更新屏幕 - 您可以点击底部的按钮并看到它!

这是错误吗?

动画没有自定义转换。

当我为推视或弹出视图设置animated:YES时,动画在视图之间自定义转换时起作用。

为什么? 是否有更新显示视图以启动动画的简单方法?

回答

0

我认为你必须使用视图进行动画:

[UIView commitAnimations] 
+0

我认为这是错误的答案。我试过 - 什么都没有。 – 2011-06-09 11:01:28

1

我想你应该有写

[yellowBatterfly startAnimating]; 
在viewDidLoad方法

。和改变从

方法viewDidAppear到viewWillAppear中和

viewDidDisappear到viewWillDisappear。

希望它会起作用...