美文网首页iOS Developer
iOS 导航栏问题汇总

iOS 导航栏问题汇总

作者: 逍遥晨旭 | 来源:发表于2018-01-02 16:22 被阅读372次

    1、导航栏设置的颜色和实际的颜色有差别

    这里是因为导航栏默认是有透明度的,添加self.navigationController.navigationBar.translucent = NO; 将导航栏设置成不透明的即可。

    2、设置导航栏背景颜色可以使用

    [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
    

    默认带有一定透明效果,可以使用self.navigationController.navigationBar.translucent = NO;去除系统效果

    3、改变导航栏的字体颜色(只改变导航的颜色,不改变状态栏的)

    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]}];
    

    4、将状态栏和导航栏字体全变为白色

    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
    

    5、改变导航栏字体大小

    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:25]}];
    

    6、为导航栏设置背景图片

    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"image"] forBarMetrics:UIBarMetricsDefault];
    

    7、导航栏透明

    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]
     self.navigationController.navigationBar.shadowImage = [UIImage new];
    

    8、导航栏设置透明后,在设置为不透明

    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:nil];
    

    9、将导航栏标题修改为一个图片或者logo

    self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo"]];
    

    10、隐藏返回按钮的返回两个字

    UIBarButtonItem *item = [UIBarButtonItem appearance];
    [item setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
    

    11、修改导航栏返回箭头图片 (全局的),必须要两个都设置,并且图片要设置成不渲染

    UINavigationBar * bar = [UINavigationBar appearance];
    bar.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"back"];
    bar.backIndicatorImage = [UIImage imageNamed:@"back"];
    

    12、修改导航栏返回箭头和文字的颜色

    self.navigationController.navigationBar.tintColor  = [UIColor redColor];
    

    13、使用UINavigationController时,push到的子页面,左上角会是系统自动取值上一层父页面的title名称。在push前通过设置navigationItem的backBarButtonItem可以直接更换文字

    UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];  
    self.navigationItem.backBarButtonItem = item;  
    

    相关文章

      网友评论

        本文标题:iOS 导航栏问题汇总

        本文链接:https://www.haomeiwen.com/subject/wyofnxtx.html