UIStatusBar和UINavigationBar的自定义设置

本文介绍如何使用Objective-C自定义iOS应用中的导航栏样式,包括调整字体颜色、背景透明度、填充颜色、设置按钮样式等操作。此外还介绍了如何去除默认阴影效果以及实现自定义侧滑手势。
// statusBar样式
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
// 字体明暗
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];

// 半透明
self.navigationController.navigationBar.translucent = YES;

// 填充颜色
self.navigationController.navigationBar.barTintColor = …;
 
// 自定义barButtonItem
第一种:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:img style:UIBarButtonItemStylePlain target:self action:@selector(method)];

第二种(推荐):
UIButton *button = [[UIButtonalloc]initWithFrame:CGRectMake(0,0,50,25)];
[button addTarget:self action:@selector(method) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.rightBarButtonItem = item;

// 导航栏返回图标只显示图标不显示文字
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-SCREEN_WIDTH, -SCREEN_HEIGHT)forBarMetrics:UIBarMetricsDefault];
// 设置导航栏透明
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];

// 去掉导航栏底部黑线
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];

// 设置侧滑手势
self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;
// 自定义导航栏颜色及字体
[[UINavigationBar appearance] setBarTintColor:UIColorFromHex(Main_Color)];  // 导航栏颜色
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];  // 文字颜色
    [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont systemFontOfSize:FontSize18 weight:UIFontWeightMedium]}];  // 字体样式
    [[UINavigationBar appearance] setTranslucent:NO];  // 不透明
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值