我试图隐藏tabbar控制器并显示uiimageview,就像在iphone的原生照片库中完成它一样。我已经创建了库,但是通过隐藏tabbar我在下一个视图上显示图像时遇到了问题。我可以隐藏tabbar,但是当我尝试添加uiimageview时,它不会消耗到标签栏占用的空间。我希望我的uiimageview能够延伸到屏幕的底部。 我甚至想在那个空白处添加一个按钮,但我无法做到。
隐藏标签栏的代码:
self.tabBarController.tabBar.hidden = YES;
有人可以帮助我吗?
感谢
的Pankaj
答案 0 :(得分:0)
试试这个
self.tabBarController.tabBar.hidden = YES;
和
[imageView setFrame:CGRectMake(0,0,320,480)];
答案 1 :(得分:0)
只需使用以下两种方法隐藏或显示tabbar控制器。将此方法放在委托类中,这样就可以从任何类调用它。
- (void) hideTabBar:(UITabBarController *) tabbarcontroller {
int height = 480;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
for(UIView *view in tabbarcontroller.view.subviews) {
if([view isKindOfClass:[UITabBar class]]) {
[view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];
}
else {
[view setFrame:CGRectMake(view.frame.origin.x,view.frame.origin.y, 320, 436)];
}
}
[UIView commitAnimations];
}
- (void) showTabBar:(UITabBarController *) tabbarcontroller {
int height = 480;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
for(UIView *view in tabbarcontroller.view.subviews) {
if([view isKindOfClass:[UITabBar class]]) {
[view setFrame:CGRectMake(view.frame.origin.x, height, view.frame.size.width, view.frame.size.height)];
}
else {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, height)];
}
}
[UIView commitAnimations];
}
答案 2 :(得分:0)
您需要设置tabBarController
视图属性的底部子视图的框架,如下所示:
self.tabBarController.tabBar.hidden = YES;
UIView* subview = (UIView*)[self.tabBarController.view.subviews objectAtIndex:0];
imageView.frame = subview.frame = self.window.bounds;
这是我在一些生产中的产品中以某种形式使用的东西。您是否真的想要使用self.window.bounds
取决于您当前的类是否具有指向UIWindow
的mainWindow实例的窗口属性,是否支持多个方向(窗口的边界保持不变,无论当前UIInterfaceOrientation
,视图控制器旋转,窗口没有)以及是否需要考虑状态栏。如果考虑状态栏(UIStatusBar
),则偏移y& 20.将子视图转换为UIView允许您在这种情况下使用点语法(静态分析器无法分辨数组中的哪些对象)。
答案 3 :(得分:0)
我几个小时都在努力。最后我找到了解决方案。只需按照以下步骤操作:
从故事板中勾选子视图控制器(要隐藏标签栏的那个)中的隐藏底部栏框。
在根视图控制器的viewWillAppear
方法中添加以下代码:self.tabBarController?.tabBar.hidden = false
。
在推送的视图控制器的viewWillAppear
方法中添加以下代码:self.tabBarController?.tabBar.hidden = true
。
这就是全部。它只是工作!