2012-05-18 3 views
0

У меня есть три вида на том же viewController, и мне нужно переключиться между ними с переходами. Каков наилучший способ сделать это? СпасибоiOS переключатель между видами одного и того же viewController

+0

это будет зависеть от того, как вы хотите переключать виды? – rishi

ответ

0

, если вы используете этот сильфон код для анимации для переходов, а затем просто нужно, чтобы скрыть и показать вид на событии нажатия кнопки ...

CATransition *animation = [CATransition animation]; 
    [animation setDelegate:self]; 
    [animation setType:kCATransitionFromBottom]; 
    [animation setDuration:1.0]; 
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName: 
            kCAMediaTimingFunctionEaseInEaseOut]]; 
    [[yourViewControllers layer] addAnimation:animation forKey:@"transitionViewAnimation"]; 

надежды, что это поможет вам .. :)

2

Ну, я не уверен, что если вы сделали этот вопрос ясно .Я думаю, вы хотите, чтобы отобразить виды по одному time.In тот случай: -

1> вы можете добавить точку в горизонтальной UIScrollView с его размером кадра, равным экрану или w (ширина должна быть равна ширине экрана .. отображается 1 за раз) вместе с UIPageControl.

2> Другой способ заключается в использовании методов: -

[self.view bringSubViewToFront:yourSubView]; 

    [self.view sendSubViewToBack:yourSubView ]; 

в соответствии с вашими требованиями.

3> Вы можете использовать анимацию для переключения между видами.

[UIView animateWithDuration:0.7 
         delay:1.2 
        options: UIViewAnimationCurveEaseOut 
       animations:^{ 
       CGRect frame=assignAframeToSwitch; 
        yourView.frame = frame; 

       } 
       completion:^(BOOL finished){ 
        NSLog(@"Done!"); 
       }]; 


       OR 

    _Weak CATransition *transition; 
    transition = [CATransition animation]; 
transition.delegate=self; 
    transition.duration = 0.75; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

    [[viewcontroller layer] addAnimation:transition forKey:@"transition"]; 
1

CATransition это лучший способ, чтобы оживить переход

CATransition* trans = [CATransition animation]; 

[trans setType:kCATransitionPush]; 

[trans setDuration:0.5]; 

[trans setSubtype:kCATransitionFromBottom]; 

// code to change the view// 

CALayer *layer = rootViewController.view.layer; 

[layer addAnimation:trans forKey:@"Transition"]; 

Надеется, что это помогает.

0

Самый быстрый способ сделать это с помощью встроенных блочных анимаций перехода UIView. Просто посмотрите документацию для UIView. Его путь проще, чем методы CATransition.