2013-07-10 2 views
0

я хочу перейти от UIView к другому в UIViewController, когда я нажимаю кнопкуПереходы между UIView в том же UIViewController

Я пишу этот код:

- (IBAction)changeView:(id)sender { 

    CATransition* transition = [CATransition animation]; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; 
    transition.duration = 1.0f; 
    transition.type = @"cube"; 
    transition.subtype = @"fromTop"; 
    [self.view1.layer removeAllAnimations]; 
    [self.view1.layer addAnimation:transition forKey:kCATransition]; 


} 

этот код будет Транзитные view1 (UIView) к себе. как я могу заставить его перейти на другой UIView (например, view2). также где я могу поставить другой UIview (view2) в раскадровку

ответ

0

Вы пробовали вот так?

self.view1.alpha = 0.0; 

[UIView beginAnimations:@"flip" context:nil]; 

[UIView setAnimationDelegate:self]; 

[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)]; 

[UIView setAnimationDuration:1.0f]; 

    self.view2.alpha = 1.0; 

    [UIView commitAnimations]; 
+0

Я хочу использовать CATransition B/C, у которого есть транзит Cube. FIY ваш код не работает для меня :( – Boss

0

Посмотрите на этот фрагмент кода, это намного элегантнее. Также проверка документации Apple, более причудливого UIViewAnimationOptions

- (IBAction)changeView:(id)sender 
{ 
    [UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{ 
     //Remove View-1 from the main view 
     [view1 removeFromSuperView]; 
     //Add the new view to your current view 
     [self.view addSubView:view2]; 
    } completion:^(BOOL finished) { 
     //Once animation is complete 
    }]; 
} 

Убедитесь, что две точки зрения сильного свойство вашего контроллера представления.

+0

Я видел этот код много в сети, но не работает для меня. Когда я нажимаю кнопку только view1, спрятаться (удалено)! – Boss

0

Если у вас есть два UIView, например, возьмите firstView и secondView и добавьте его в UIViewController на том же прямоугольнике. и установите свойство hiddden на secondView.

-(IBAction)flipFirstViewToSecondView{ 
secondView.hidden= NO; 
    [UIView transitionWithView:firstView duration:1.0f options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{ 

     [UIView transitionWithView:secondView duration:1.0f options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{ 

     } completion:^(BOOL finished) { 
      secondView.hidden = NO; 
      firstView.hidden = YES; 
     }]; 

    } completion:^(BOOL finished) { 

    }]; 
} 

Спасибо. просто дайте мне знать, если у вас есть какие-либо проблемы для его интеграции.

+0

Спасибо большое за вашу помощь, но это не я предпочитаю использовать качественное решение, когда я меняю транзитный вариант. Кроме того, я хочу использовать CATransition b/c, у него есть больше возможностей транзита, например, транзит куба. – Boss