UINavigationBar的translucent属性说

一. 初识translucent


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二. 官档优先

在这里插入图片描述

  • Discussion部分大意如下:
  1. 默认值为YES. 在navigation bar有一个自定义的background image的情况下, 如果这个background image的任何一个像素的alpha值小于1.0, 则 translucent 属性值为 YES, 反之为 NO;
  2. 若将此属性置为YES(在navigation bar具有opaque的自定义background image的情况下), 此navigation bar将会把系统定义的一个小于1.0的透明度应用在这张background image上.
  3. 若将此属性置为NO(在此navigation bar具有一个translucent自定义的background image的情况下), 此navigation bar会为此图片提供一个opaquebackground(①若此navigation bar的样式为UIBarStyleBlack, 则此background为黑色; ②若此navigation bar的样式为UIBarStyleDefault, 则此background为白色; ③若navigation barbarTintColor属性的值被定义, 则为此颜色;)

三. 文档注释

在这里插入图片描述

  • iOS 7 新的行为如下:
  1. 默认值为 YES;
  2. 您可以通过将属性设置为NO来强制使用不透明背景。(实际情况是设为NO, 导航栏变为白色, 控制器的根视图向下偏移一个导航栏高度的距离, 效果图如1-0所示);
  3. 如果导航栏具有自定义背景图像,则默认值是从图像的Alpha值推断出来的,如果它具有alpha <1.0的任何像素, 则推断为YES;
  4. 如果将setTranslucent:YES发送到具有不透明自定义背景图像的条形图,则会将小于1.0的系统不透明度(经过推断, 应该为0.8)应用于图像。
  5. 如果您将setTranslucent:NO发送到具有半透明自定义背景图像的条形图,它将使用条形图的barTintColor(如果已定义)为图像提供不透明背景,如果barTintColor为nil,则为UIBarStyleBlack提供黑色或UIBarStyleDefault为白色(iOS 12上, 如此设置, 导航栏变为不透明的白色, 推断iOS 12 上的导航栏具有半透明自定义背景图像)。
  • iOS 6及更早版本的默认值为NO。 如果barStyle设置为UIBarStyleBlackTranslucent,则始终为YES.

四. 插图1-0

  • 系统默认样式

- (void)viewDidLoad {
    [super viewDidLoad];

    self.navigationItem.title = @"地表最强iOS小队";
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:nil];
    
    self.view.backgroundColor = [UIColor magentaColor];
    }

在这里插入图片描述

  • 设置translucent为NO的样式
- (void)viewDidLoad {
    [super viewDidLoad];

    self.navigationController.navigationBar.translucent = NO;
    self.navigationItem.title = @"地表最强iOS小队";
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:nil];
    
    self.view.backgroundColor = [UIColor magentaColor];
}

在这里插入图片描述

Others

  1. 测试环境为iOS 12;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是用视图方式iOS 导航条的步骤: 1. 创建导航条视图 在 iOS 应用程序中,导航条通常是一个视图控件,可以通过创建一个 `UINavigationBar` 实例来创建导航条视图。例如,可以在视图控制器的 `viewDidLoad` 方法中添加以下代码来创建导航条: ``` UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)]; [self.view addSubview:navigationBar]; ``` 这段代码创建了一个高度为 44 点的导航条,并将其添加到视图控制器的视图中。 2. 创建导航项和导航按钮 导航条通常包含一个或多个导航项,每个导航项表示一个视图控制器。要创建一个导航项,可以使用 `UINavigationItem` 类。例如,下面的代码创建了一个标题为 "Home" 的导航项,并将其添加到导航条中: ``` UINavigationItem *homeNavItem = [[UINavigationItem alloc] initWithTitle:@"Home"]; [navigationBar pushNavigationItem:homeNavItem animated:NO]; ``` 此外,导航条通常还包含一个或多个导航按钮,用于在不同的视图控制器之间进行导航。要创建一个导航按钮,可以使用 `UIBarButtonItem` 类。例如,下面的代码创建了一个标题为 "Back" 的导航按钮,并将其添加到导航项的左侧: ``` UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonPressed)]; homeNavItem.leftBarButtonItem = backButton; ``` 该代码将 `backButton` 对象设置为导航项的左侧按钮,并指定了按钮标题、样式、目标和操作。当用户按下该按钮时,将调用 `backButtonPressed` 方法。 3. 处理导航按钮点击事件 当用户按下导航按钮时,需要响应相应的事件并导航到相应的视图控制器。在上面的示例中,当用户按下 "Back" 按钮时,将调用 `backButtonPressed` 方法。实现该方法的代码如下: ``` - (void)backButtonPressed { [self.navigationController popViewControllerAnimated:YES]; } ``` 该代码使用导航控制器的 `popViewControllerAnimated:` 方法来从导航堆栈中弹出当前视图控制器,并返回到上一个视图控制器。如果没有上一个视图控制器,则返回到应用程序的根视图控制器。 这些步骤可以帮助你创建和使用 iOS 导航条视图,并处理相应的导航按钮点击事件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依旧风轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值