2010-08-23 3 views
3

Ищу реализовать CATransitions в TTNavigator, я знаю, что метод OpenUrl может занять UIViewAnimationTransition но только дает мне листать и щипцы для анимации, но с CATransition у меня есть доступ к другим 8, из которых kCATransitionFromRight, kCATransitionFromLeft, kCATransitionFromTop, kCATransitionFromBottom - это те, которые я получил после .Использование CATransition's In Three20?

С 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? Или если Я делаю что-то не так в своем коде?

ответ

6

Оказывается, я ответил на свой вопрос, но вместо того, чтобы использовать эту последнюю строку кода для установки анимации на 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

Вы можете легко добавить флип или любой другой вид анимации на 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.