2

2 つのビューがあります。1 つは aView、もう 1 つは bView です。aView にはボタンがあります。ボタンをクリックすると、bView にジャンプします。コードを参照してください。

-(IBAction)jump2b:(id)sender{
CATransition *animation = [CATransition animation];
animation.delegate = self;
animation.duration = 0.25f;
animation.timingFunction = UIViewAnimationCurveEaseInOut;
animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = NO;
animation.type = kCATransitionPush;
animation.subtype = kCATransitionFromTop;
   [bView.view.layer addAnimation:animation forKey:@"animation"];
 }

うまく動かない、ジャンプできる、どうすればいい?ありがとう

4

1 に答える 1

7

最後に実際にビューを追加するのを忘れていました...

-(IBAction)jump2b:(id)sender{
    CATransition *animation = [CATransition animation];
    animation.delegate = self;
    animation.duration = 0.25f;
    animation.timingFunction = UIViewAnimationCurveEaseInOut;
    animation.fillMode = kCAFillModeForwards;
    animation.removedOnCompletion = NO;
    animation.type = kCATransitionPush;
    animation.subtype = kCATransitionFromTop;
    [bView.view.layer addAnimation:animation forKey:@"animation"];

    //add bView to current view
    [self.view addSubview:bView];
}

UIView アニメーション ブロックを使用していない理由はありますか? これは、iOS 4 以降のアニメーションに推奨される方法です。UIView の transitionFromView:toView:duration:options:completion: を使用するとうまくいくはずです...

[UIView transitionFromView:aView 
                    toView:bView 
                  duration:0.25 
                   options: (UIViewAnimationCurveEaseInOut | UIViewAnimationOptionTransitionCurlUp)
                completion:nil];

遷移オプションの例として UIViewAnimationOptionTransitionCurlUp を使用しましたが、任意の UIViewAnimationOption を選択できます。

于 2011-08-07T17:00:34.293 に答える