标签更改时的动画

时间:2015-10-08 13:34:49

标签: ios objective-c animation tabs

我想换到另一个标签,但我也想从底部打开它。像垂直过渡一样。

我试图这样做:

  -(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;
}

但这不是我想要的效果。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是我的解决方案:

首先。在UITabBarController'委托中返回false。因此,当用户选择标签时,系统不会立即更改标签 - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

其次。 Capture your toView to an image

第三。使用imageView做任何你想要的动画。

最后。设置tabBarController的selectedIndex并在动画完成时删除imageView。

随意问我。谢谢!