gpt4 book ai didi

ios - 如何在弹出/推送传输中为一个导航栏呈现两种不同的 barTintColor

转载 作者:行者123 更新时间:2023-11-29 01:04:56 27 4
gpt4 key购买 nike

一些正常的代码如下所示:

-(void)viewWillAppear:(BOOL)animated
{

[super viewWillAppear:animated];

[self.navigationController.navigationBar setBarTintColor:someColor];
}

-(void)viewWillDisappear:(BOOL)animated
{

[super viewWillDisappear:animated];

[self.navigationController.navigationBar setBarTintColor: someColor];

}

但是,这会导致导航栏在推送事件发生时突然完全改变其颜色。 (或者当您拖动 Controller 的左边缘将其弹出时,这会触发“viewWillDisappear”方法)有什么方法可以在弹出动画期间保持两种颜色的呈现?

我知道微信可以做到...

如下图所示,当右侧的 Controller 弹出时,其导航栏的背景颜色为浅灰色(可能是背景图像),而左侧 Controller 的导航栏的背景颜色为黑色也在那里。

enter image description here

最佳答案

我通过在两个 View 中使导航栏透明来解决它,并且我在 View 本身中添加了我想要的颜色,矩形 View 只是为了将其用作背景色。

这里是 Storyboard: enter image description here

这里是最终结果: enter image description here

一些代码(确保您没有像本示例中那样对 View 的宽度进行硬编码):

[self.navigationController.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
UIView *bg = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 480, 60)];
bg.backgroundColor = [UIColor redColor];
[self.view addSubview:bg];

并确保禁用“调整 ScrollView 插图” enter image description here

关于ios - 如何在弹出/推送传输中为一个导航栏呈现两种不同的 barTintColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36525772/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com