iOS浅谈导航控制器和标签控制器遇到的坑

UINavigationController
  • navigationBar有一个 translucent属性.默认是YES.如果标签栏有一个自定义背景图片,如果系统判定图片像素值α<1.0,系统将应用透明度低于1.0的形象. 也就是translucent = YES;
    当 translucent = YES时,图层是这样的 view的fream从屏幕上方开始,能透过导航条看到后面view颜色


    iOS浅谈导航控制器和标签控制器遇到的坑_第1张图片
    Snip20161113_21.png
  • 当 translucent =NO时,图层是这样的 view的fream从导航条下方,不能透过导航条看到后面view颜色


    iOS浅谈导航控制器和标签控制器遇到的坑_第2张图片
    Snip20161113_20.png
导航栏样式
  • 如果有导航控制器时,导航栏的样式的权限是默认交给导航控制器做全局处理
 - (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}
  • 如果实现了下面的方法,导航控制器就把权限交给处于栈顶的控制器来设置导航条的样式,必须实现此方法
 - (UIViewController *)childViewControllerForStatusBarStyle {
    return self.topViewController; // 返回当前的栈顶控制器
}

 - (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleDefault;
}
隐藏导航栏
  • 隐藏导航栏导航控制器不能操作,只能去没个子控制器去设置,官方不建议隐藏
 - (BOOL)prefersStatusBarHidden {
  return YES;
}
隐藏tabBar
  • 控制器跳转的时候,我们需要隐藏导航控制器的非根控制器的tabBar
 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
//tabBar会在创建之前就被隐藏,所以需要判断.
    if (self.childViewControllers.count > 0) {
        viewController.hidesBottomBarWhenPushed = YES;
    }
    [super pushViewController:viewController animated:animated];
}

去掉导航条下面的阴影线
  • 把导航条下面的隐影线去掉,图片参数不能传"nil"把导航条彻底透明去掉阴影线
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    // 清空阴影图片
    [self.navigationBar setShadowImage:[UIImage new]];
常用的属性
  • 如果要设置内容全找item
  • 如果要改的是颜色及文字属性相关的找bar
// 设置导航条内容主题色
    self.navigationBar.tintColor = [UIColor whiteColor];
// 设置导航条及状态栏的背景色
    self.navigationBar.barTintColor = [UIColor  blueColor];

//常用的设置导航条标题文字颜色及字体大小的作法
self.navigationBar.titleTextAttributes = @{NSFontAttributeName : [UIFont systemFontOfSize:17], NSForegroundColorAttributeName : [UIColor whiteColor]};

UITabBarController
  • UITabBar也有translucent属性 道理和上面一样 只是是否显示标签栏后面的view
  • 不渲染taBbar上的图片
vc.tabBarItem.selectedImage = [[UIImage imageNamed:imageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]

或者找到图片这样改


iOS浅谈导航控制器和标签控制器遇到的坑_第3张图片
BCFEE316-AF56-4B40-8957-9D8C03676127.png
坑很多,这只是其中几个. 有不足,望指点

你可能感兴趣的:(iOS浅谈导航控制器和标签控制器遇到的坑)