Iphone 完全显示/隐藏tabbar控制器并使用空间
我试图隐藏tabbar控制器并显示uiimageview,这与iphone本机照片库中的操作类似。我已经创建了这个库,但是我在通过隐藏tabbar在下一个视图中显示图像时遇到了问题。我可以隐藏选项卡栏,但当我尝试添加uiimageview时,它不会占用选项卡栏占用的空间。我希望我的uiimageview一直延伸到屏幕底部。 我甚至想在那个空白处添加一个按钮,但我不能这样做 隐藏选项卡栏的我的代码:Iphone 完全显示/隐藏tabbar控制器并使用空间,iphone,ios,uiimageview,uitabbarcontroller,Iphone,Ios,Uiimageview,Uitabbarcontroller,我试图隐藏tabbar控制器并显示uiimageview,这与iphone本机照片库中的操作类似。我已经创建了这个库,但是我在通过隐藏tabbar在下一个视图中显示图像时遇到了问题。我可以隐藏选项卡栏,但当我尝试添加uiimageview时,它不会占用选项卡栏占用的空间。我希望我的uiimageview一直延伸到屏幕底部。 我甚至想在那个空白处添加一个按钮,但我不能这样做 隐藏选项卡栏的我的代码: self.tabBarController.tabBar.hidden = YES; 谁能帮帮
self.tabBarController.tabBar.hidden = YES;
谁能帮帮我吗
谢谢Pankaj试试这个
self.tabBarController.tabBar.hidden = YES;
及
只需使用以下两种方法隐藏或显示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];
}
您需要设置
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
的主窗口实例的窗口属性,以及您是否支持多个方向(不管当前的UIInterfaceOrientation
,视图控制器旋转,窗口不旋转,窗口的边界保持不变)以及是否需要考虑状态栏。如果考虑状态栏(UIStatusBar
),将y和高度偏移20。在这种情况下,将子视图转换为UIView允许使用点语法(静态分析器无法分辨数组中有哪些对象)。我为此苦苦挣扎了几个小时。最后我找到了解决方案。只需按照以下步骤操作即可:
- 勾选从情节提要中推入子视图控制器(要隐藏选项卡栏的控制器)时隐藏底部栏的框
- 在根视图控制器的
视图中添加以下代码将出现
方法:
self.tabBar控制器?.tabBar.hidden=false
- 在推式视图控制器中的
方法中添加以下代码:viewwillbeen
self.tabBar控制器?.tabBar.hidden=true
仅此而已。它很管用!我已经试过多次了,但都不管用。你有什么解决方案吗?考虑到不同的形状因素,你应该硬编码高度吗?可能是“int height=[[UIScreen mainScreen]bounds].size.height;”?
- (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];
}
self.tabBarController.tabBar.hidden = YES;
UIView* subview = (UIView*)[self.tabBarController.view.subviews objectAtIndex:0];
imageView.frame = subview.frame = self.window.bounds;