美文网首页
IOS 设置导航条navigationbar

IOS 设置导航条navigationbar

作者: 越天高 | 来源:发表于2020-05-01 19:31 被阅读0次

    在进行设置之前,我们要先区分好几个常用的概念
    UIBarButtonItem:描述按钮具体的内容
    UINavigationItem:设置导航条上内容(左边,右边,中间)

    tabBarItem: 设置tabBar上按钮内容(tabBarButton)

    由于设置的导航栏UIBarButtonItem方法相同,所以我们可以创建一个UIBarButtonItem的分类用于快速创建Item。

    + (UIBarButtonItem *)itemWithImage:(UIImage *)image hightImage:(UIImage *)hightImage target:(id)target action:(SEL)aciton
    {
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
        [btn setImage:image forState:UIControlStateNormal];
        [btn setImage:hightImage forState:UIControlStateHighlighted];
        
        [btn addTarget:target action:aciton forControlEvents:UIControlEventTouchUpInside];
        [btn sizeToFit];
        
        UIView *container = [[UIView alloc] initWithFrame:btn.bounds];
        [container addSubview:btn];
        return [[UIBarButtonItem alloc] initWithCustomView:container];
        
    }
    
    • 不实用分类
     UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        [leftBtn setImage:[UIImage imageNamed:@"ImageName"] forState:UIControlStateNormal];
        [leftBtn setImage:[UIImage imageNamed:@"ImageName"] forState:UIControlStateHighlighted];
        [leftBtn addTarget:self action:@selector(leftAction) forControlEvents:UIControlEventTouchUpInside];
        [leftBtn sizeToFit];
        UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:leftBtn];
        self.navigationItem.leftBarButtonItem = leftItem;
    
    //右边的按钮分类方法
        self.navigationItem.rightBarButtonItem = [UIBarButtonItem itemWithImage:[UIImage imageNamed:@"ImageName"] hightImage:[UIImage imageNamed:@"ImageName"] target:self action:@selector(leftAction)];
        
        //标题
        self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ImageName"]];
    

    处理导航条标题

    在自定义NavigationController

    + (void)load
    {
        UINavigationBar *navBar = [UINavigationBar appearanceWhenContainedIn:self, nil];
        //ios 之后推荐使用appearanceWhenContainedInInstancesOfClasses
        
        //只要通过模型进行设置,都是使用富文本进行设置
        
        //设置标题
        NSMutableDictionary *titleDic = [NSMutableDictionary dictionary];
        
        titleDic[NSFontAttributeName] = [UIFont systemFontOfSize:20];
        [navBar setTitleTextAttributes:titleDic];
        
        // 设置导航条背景图片
        [navBar setBackgroundImage:[UIImage imageNamed:@"imageName"] forBarMetrics:UIBarMetricsDefault];
     
    }
    

    设置导航控制器的跳转逻辑

    再有tabbar的时候我们跳转之后需要净底部的tabbar隐藏 然后返回的时候 还需要将它显示出来。

    SettingTVController *settingTVC = [[SettingTVController alloc] init];
        //必须在跳转之前设置
        settingTVC.hidesBottomBarWhenPushed = YES;
        [self.navigationController pushViewController:settingTVC animated:YES];
    
    

    相关文章

      网友评论

          本文标题:IOS 设置导航条navigationbar

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