我想换到另一个标签,但我也想从底部打开它。像垂直过渡一样。
我试图这样做:
-(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)
这是我的解决方案:
首先。在UITabBarController'委托中返回false
。因此,当用户选择标签时,系统不会立即更改标签
- (BOOL)tabBarController:(UITabBarController *)tabBarController
shouldSelectViewController:(UIViewController *)viewController
其次。 Capture your toView to an image
第三。使用imageView做任何你想要的动画。
最后。设置tabBarController的selectedIndex
并在动画完成时删除imageView。
随意问我。谢谢!