导航栏控制器--UINavigationController

本文介绍iOS应用中自定义导航栏的方法,包括解决坐标偏移问题、设置背景颜色及图片、创建自定义导航栏项、添加滑动手势、设置导航栏提示等。还介绍了如何通过导航栏样式改变导航栏颜色及电池条颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.默认(或者设置)的半透明属性(同时滑动视图是第一个添加到控制器view上时) 会导致坐标偏移64
self.navigationController.navigationBar.translucent= NO;
设置禁止偏移 这个要写在viewController里面才能有效果 跟设置透明的属性一起
self.automaticallyAdjustsScrollViewInsets = NO;

2.配置导航栏的背景颜色和图片
(1)设置背景颜色
self.navigationController.navigationBar.barTintColor= [UIColorredColor];
(2)设置背景图片
[self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"nav_bg_all-64"]forBarMetrics:UIBarMetricsDefault];

3.创建系统自带的Item
UIBarButtonItem*leftItem = [UIBarButtonItem alloc] initWithBarButtonSystemItem:<#(UIBarButtonSystemItem)#> target:<#(nullable id)#> action:<#(nullable SEL)#>

4.创建自定义Item
UIBarButtonItem*leftItem = [UIBarButtonItem alloc] initWithCustomView:<#(nonnull UIView *)#>

5.设置滑动的手势 NavigationController堆栈内的UIViewController可以支持右滑手势
self.navigationController.interactivePopGestureRecognizer.delegate= self;

6.设置导航栏提示
self.navigationItem.prompt= @"我在努力加载啦。。。。";

7.在导航栏上添加子视图 特别注意:navigation 要这样才能赋值
[self.navigationController.navigationBaraddSubview:textField];//是唯一的
self.navigationItem.titleView= textField;//Item是属于当前控制器的

8.在导航栏上设置标题视图 以及直接设置标题
self.navigationItem.titleView= title;
self.navigationItem.title = [NSString stringWithFormat:@"第个%ld视图",self.navigationController.viewControllers.count];

9.通过设置导航栏的样式 改变导航栏和电池条的颜色
//通过设置导航栏的样式改变导航栏的字体颜色,间接改变电池条颜色
self.navigationBar.barStyle= UIBarStyleBlack;

10.通过字典配置导航栏上文字的属性
//通过设置导航栏上文字的属性设置颜色
self.navigationBar.titleTextAttributes= @{NSForegroundColorAttributeName:[UIColorwhiteColor]};

11.可以根据子视图的不同设置不同状态的电池条 通过取出栈顶的视图控制器
#pragma mark -设置电池条(视图控制器里也要写一次)
- (UIStatusBarStyle)preferredStatusBarStyle {
   
   return [self.topViewControllerpreferredStatusBarStyle];
}

12.导航栏控制器的控制方式









































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值