Использование CATransition в Three20? - PullRequest
3 голосов
/ 23 августа 2010

Я хочу реализовать CATransitions в TTNavigator, я знаю метод openURL может принять UIViewAnimationTransition, но это только дает мне анимация переключения и керлинга, но благодаря CATransition у меня есть доступ к другому 8, из которых kCATransitionFromRight, kCATransitionFromLeft, kCATransitionFromTop, kCATransitionFromBottom - это те, кем я являюсь особенно после.

С UINavigationController будет использовать что-то вроде этого кода для дайте мне больше контроля над анимацией:

    CATransition *transition = [CATransition animation];
    transition.duration = 0.5f;
    transition.timingFunction = [CAMediaTimingFunction
    functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionPush;
    [self.navigationController.view.layer addAnimation:transition
    forKey:nil];

Однако этот код не работает с TTNavigator. Кто-нибудь знает Как я могу получить свои собственные анимации для работы с TTNavigator? Или если Я делаю что-то не так в моем коде?

Ответы [ 2 ]

6 голосов
/ 23 августа 2010

Оказывается, я ответил на свой собственный вопрос, но вместо того, чтобы использовать последнюю строчку кода для установки анимации на navigationController, я пытался установить переход к URLAction.Как только я вставил эту строку обратно и закомментировал код перехода URLAction, он, кажется, работает!

    // create the URLAction
TTURLAction* urlAction;
urlAction = [TTURLAction actionWithURLPath:@"tt://Images"]; 
[urlAction applyAnimated:YES];

    // create the CATransition and set it to the navigation controller
CATransition *transition = [CATransition animation];
transition.duration = 0.5f;
transition.timingFunction = [CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
[self.navigationController.view.layer addAnimation:transition
forKey:nil]; 

    // tell the navigator to run the action
[[TTNavigator navigator] openURLAction:urlAction];

Надеюсь, это поможет кому-то еще в будущем!

1 голос
/ 03 февраля 2011

Вы можете легко добавить флип или любую другую анимацию на TTNavigator, используя TTLauncherView, следующим образом:

- (void)launcherView:(TTLauncherView*)launcher didSelectItem:(TTLauncherItem*)item {
    TTURLAction* action = [TTURLAction actionWithURLPath:item.URL];
    [action setAnimated:YES];
    [action setTransition:UIViewAnimationTransitionFlipFromLeft];
    [[TTNavigator navigator] openURLAction:action];
}

Это заставляет TTNavigator использовать анимированный переход при отображении нового URL.

...