2011-08-10 7 views
0

コード:私のCAAnimationに何か問題がありますか?

UIView *superView = [self.view superview]; 
CATransition *animation = [CATransition animation]; 
animation.duration = 0.5f; 
animation.timingFunction = UIViewAnimationCurveEaseInOut; 
animation.fillMode = kCAFillModeForwards; 
animation.type = kCATransitionFade; 
animation.subtype = kCATransitionFromTop; 
[root.view removeFromSuperview]; 
[self.view removeFromSuperview]; 
[superView.layer addAnimation:animation forKey:@"removeContentAnimation"]; 

self.viewとroot.viewが「スーパー」で追加されました

私はこのアニメーションを犯した場合、エラーが発生するのはほとんどチャンスがあったが - ビューの両方を除去しましたスーパービューからすぐに戻って来ました。この急変後、正常に消えた。

+1

質問、エラーが何ですか? self.viewとroot.viewは何ですか? – Spring

答えて

0

このDOKUをチェックアウト:http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html#//apple_ref/doc/uid/TP40009503-CH6-SW1

  1. あなたがremoveFromSuperViewをアニメーション化することはできません。
  2. 短いヒントであり、あなたはここで景色

とをアニメーション化するためにブロックを使用する必要があります。非常に明確ではありません

- (IBAction)hideView:(id)sender 
{ 
    [UIView animateWithDuration:1.0 
     delay: 0.0 
     options: UIViewAnimationOptionCurveEaseIn 
     animations:^{ 
      viewToHide.alpha = 0.0; 
     } 
     completion:^(BOOL finished){ 
      [viewToHide removeFromSuperView]; 
     }]; 
} 
関連する問題