我试图在触摸按钮时同时隐藏 UITabBarController 和 UINavigationController 。我在这里找到了一个非常好的代码片段How to hide uitabbarcontroller但是在尝试隐藏 UINavigationController 和 tabbarcontroller 并为其设置动画时遇到问题。当他们使用隐藏标签栏时,我还在互联网上找到了很多示例,self.tabBarController.tabBar.hidden = YES
但这仅隐藏了按钮项而不是底部的黑条。
在玩了很多之后,我可以正确地制作动画,因为我认为它与导航控制器的隐藏有关,这使得整个窗口的大小可以即时改变。
-(IBAction)touchImage:(id)sender {
if (isImageFullScreen) {
isImageFullScreen = NO;
[self.navigationController setNavigationBarHidden:NO animated:YES];
[UIView transitionWithView:self.view
duration:0.5
options:UIViewAnimationOptionCurveLinear
animations:^
{
hotelImageButton.frame = CGRectMake(0,20,320,92);
[self showTabBar:self.tabBarController];
}
completion:^(BOOL finished)
{
}];
} else {
isImageFullScreen = YES;
[self.navigationController setNavigationBarHidden:YES animated:YES];
[UIView transitionWithView:self.view
duration:0.5
options:UIViewAnimationOptionCurveLinear
animations:^
{
hotelImageButton.frame = CGRectMake(0,0,320,480);
[self hideTabBar:self.tabBarController];
}
completion:^(BOOL finished)
{
}];
}
}
hideTabBar 和 showTabBar 方法是我在上面链接的另一篇文章中的方法。
我也尝试了一些其他的组合,但我不能让它看起来很好。有任何想法吗?
提前致谢。