ios - 导航栏是否隐藏影响view的布局
PHPz
PHPz 2017-04-17 13:55:15
[iOS讨论组]

我在ios7下运行代码:

  • 有导航栏时,布局为CGRectMake(0, 0, 40, 40),view从导航栏下开始;
  • 如果 self.navigationController.navigationBar.hidden = YES 处理后,布局为CGRectMake(0, 0, 40, 40)view会从屏幕的顶端开始,被状态栏挡住一部分;
  • 不然空出导航栏的位置CGRectMake(0, 20, 40, 40),view会从状态栏下面在下移20开始。

这个不知道怎么解决,请高手指点~~万分感谢。

我的导航栏和标签栏是通过下面代码处理的,不知道有没有影响:

OYIFirstViewController * vc1 = [[OYIFirstViewController alloc] init];

OYIOrderViewController * vc2 = [[OYIOrderViewController alloc] init];

OYISecondViewController * vc3 = [[OYISecondViewController alloc] init];

//每一个tabBarItem添加一个navigation
    UINavigationController *navController1 =
    [[UINavigationController alloc] initWithNavigationBarClass:[testNavigationBar class]
                                                  toolbarClass:nil];
    [navController1 setViewControllers:[NSArray arrayWithObject:vc1]];

    UINavigationController *navController2 =
    [[UINavigationController alloc] initWithNavigationBarClass:[testNavigationBar class]
                                                  toolbarClass:nil];
    [navController2 setViewControllers:[NSArray arrayWithObject:vc2]];

    UINavigationController *navController3 =
    [[UINavigationController alloc] initWithNavigationBarClass:[testNavigationBar class]
                                                  toolbarClass:nil];
    [navController3 setViewControllers:[NSArray arrayWithObject:vc3]];

    navController1.navigationBar.translucent = NO;
    navController2.navigationBar.translucent = NO;
    navController3.navigationBar.translucent = NO;


navController1.navigationBar.tintColor = [UIColor whiteColor];
navController2.navigationBar.tintColor = [UIColor whiteColor];
    navController3.navigationBar.tintColor = [UIColor whiteColor];

//tabBar设置标签名
UITabBarItem *customItem1 = [[UITabBarItem alloc] initWithTitle:@"首页" image:[UIImage imageNamed:@"HOME"] tag:0];

navController1.tabBarItem = customItem1;

UITabBarItem *customItem2 = [[UITabBarItem alloc] initWithTitle:@"发现" image:[UIImage imageNamed:@"FOUND"] tag:1];

navController2.tabBarItem = customItem2;

UITabBarItem *customItem3 = [[UITabBarItem alloc] initWithTitle:@"快速发布" image:[UIImage imageNamed:@"PUBLISH"] tag:2];

navController3.tabBarItem = customItem3;

//将navigation添加到tabBar中
NSArray* controllers = [NSArray arrayWithObjects:navController1, navController2, navController3, nil];

    self.wTabBarControler.viewControllers = controllers;
self.wTabBarControler.edgesForExtendedLayout = UIRectEdgeNone;
self.wTabBarControler.tabBar.tintColor = [UIColor colorWithRed:231.0/255 green:94.0/255 blue:25.0/255 alpha:1.0f];
    [self.wTabBarControler.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_normal_background.png"]];

[self.window addSubview:self.wTabBarControler.view];

self.window.rootViewController = self.wTabBarControler;
PHPz
PHPz

学习是最好的投资!

全部回复(2)
大家讲道理

本来就是这样的,有navigationBar时和没有navigationBar时坐标起始点不同。

伊谢尔伦

oc中有些0值是会给默认值的,试试不用0,用CGFloatMin,也就是最小的浮点数。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号