как работает CATransition? - PullRequest
       17

как работает CATransition?

2 голосов
/ 07 августа 2011

У меня есть два вида, один - aView, другой - 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"];
 }

, он не можетработать хорошо, он может прыгать, так что я могу сделать? спасибо

1 Ответ

7 голосов
/ 07 августа 2011

Вы забыли добавить вид в конце ...

-(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: завершение: должно работать для вас ...

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

Я использовал UIViewAnimationOptionTransitionCurlUp в качестве примера для опции перехода, ноВы можете выбрать любую опцию UIViewAnimationOption.

...