1

PATHアプリケーションの場合と同様に、スプラッシュビューにフリップアニメーションを実装したいiPhoneアプリケーションがあります。別のビューコントローラーを使用してスプラッシュビューを表示しています。このアニメーションでウィンドウから削除したいです。これを実現する方法についてのアイデア。これは、ビューを追加するために私が行っていることです。ウィンドウからこのビューを削除し、`のようなアニメーションで新しいビューを追加する方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    self.startupController = [[StartupViewController alloc] initWithNibName:@"StartupViewController" bundle:nil];
    [window addSubview:self.startupController.view];
    [self.startupController.activityIndicator setHidden:NO];
    [self.startupController.activityIndicator startAnimating];
    [window makeKeyAndVisible];

    timer = [NSTimer scheduledTimerWithTimeInterval: 2.0
                                                 target: self
                                               selector: @selector(handleTimer:)
                                               userInfo: nil
                                                repeats: NO];


    // [window addSubview:navigationController.view];
    //  [window makeKeyAndVisible];

    return YES;
}

-(void)handleTimer:(NSTimer*)timer {


    [self.startupController.activityIndicator stopAnimating];
    [self.startupController.activityIndicator setHidden:YES];

    self.startupController.view.layer.anchorPoint=CGPointMake(0, .5);
    self.startupController.view.center = CGPointMake(self.startupController.view.center.x - self.startupController.view.bounds.size.width/2.0f, self.startupController.view.center.y);
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:5];
    [UIView setAnimationDelay:1];
    self.startupController.view.transform = CGAffineTransformMakeTranslation(0,0);
    CATransform3D _3Dt = CATransform3DIdentity;
    _3Dt =CATransform3DMakeRotation(3.141f/2.0f,0.0f,-1.0f,0.0f);
    _3Dt.m34 = 0.001f;
    _3Dt.m14 = -0.0015f;
    self.startupController.view.layer.transform =_3Dt;
    [UIView commitAnimations];  
    //[window addSubview:navigationController.view];
     //[window makeKeyAndVisible];      
}

`when i am doing like this i can have that flip animation.but when the view is flipping i need to have my home view there.But when i am uncomenting the last two lines that functionality is working but there is no animation.Can anybody help me?
4

2 に答える 2

1

私はこの投稿で使用されているアプローチが好きです。そこで使用されているアニメーションはフェードしますが、アニメーションの良いコンテナです。

また、animationTransitionを設定すると、必要なアニメーションを取得できるはずです。このようなもの..

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:splashView cache:YES];

これで、少なくとも始めることができます。:-)

于 2012-07-24T09:08:54.030 に答える
1

これが私のプロジェクトの1つですでに使用した1つのコードです。

パッドのように表紙を開く必要があります。

#pragma mark Open Book Animation

- (void)pageOpenView:(UIView *)viewToOpen duration:(NSTimeInterval)duration {

  // first add next view below current view
  [self.view.window insertSubview:navigationController.view 
                     belowSubview:self.view];

  // set anchor point for the view animation
  viewToOpen.layer.anchorPoint = CGPointMake(0.0f, 0.0f);

  viewToOpen.center = CGPointMake(0, 
                                  (viewToOpen.center.y - 
                                   (viewToOpen.bounds.size.height/2.0f)));

  // start the Page Open
  [UIView beginAnimations:@"Page Open" context:nil];
  [UIView setAnimationDuration:2.0];
  [UIView setAnimationDelegate:self];
  [UIView setAnimationDidStopSelector:@selector(didEndAnimation)];

  [viewToOpen.layer setValue:[NSNumber numberWithInt:180] 
                  forKeyPath:@"transform.rotation.x"];

  [splashImageView setHidden:YES];

  [UIView commitAnimations];

}

ここで、viewToOpenはアニメーションが必要なUIViewであり、durationはアニメーションのタイムラインです。

これがあなたが必要としたものであることを願っています。

コーディングをお楽しみください:)

于 2012-07-24T10:06:00.137 に答える