美文网首页
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