2015-10-08 4 views
0

Я хочу перейти на другую вкладку, но я также хочу открыть ее снизу. Как вертикальный переход.Анимация при изменении вкладок

Я пытался сделать так:

-(void)test{ 

    UIView * toView = [[self.tabBarController.viewControllers objectAtIndex:1] view]; 


    UIImage *img=[self imageWithView:toView]; 



    [UIView transitionWithView:img 
         duration:1.0f 
         options:UIViewAnimationOptionCurveEaseIn 
        animations:^{ 
         self.tabBarController.selectedIndex = 0; 
        } completion:NULL]; 



} 

- (BOOL)tabBarController:(UITabBarController *)tabBarController 
shouldSelectViewController:(UIViewController *)viewController{ 
    return false; 
} 
- (UIImage *) imageWithView:(UIView *)view 
{ 
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0); 
    [view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

    UIImage * img = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 







    return img; 
} 

, но это не тот эффект, что я хочу. Любые идеи?

+0

поэтому, когда вы выбираете вкладку, вы хотите представить контроллер представления снизу? –

+0

да, это то, что я хочу –

ответ

0

Это мое решение:

Во-первых. return false в делегате UITabBarController '. Таким образом, система не будет изменять вкладку сразу, когда пользователь будет выбирать вкладку.
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

Во-вторых. Capture your toView to an image

В-третьих. Сделайте любую анимацию, которую вы хотите с помощью ImageView.

И наконец. Установите selectedIndex вашего tabBarController и удалите изображениеView, когда анимация завершена.

Не стесняйтесь спрашивать меня. Благодаря!

+0

Я обновляю свой вопрос, пожалуйста, посмотрите –

+0

@AdinaMarin Добавьте изображение в UIWindow с рамкой происхождения (возможно, за пределами экрана). затем сделайте анимацию, которая перемещает изображение в рамку представления. – hzwzw