• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 将导航栏的背景图像恢复为默认值

[复制链接]
菜鸟教程小白 发表于 2022-12-12 23:10:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

首先,我将导航栏的背景设置为半透明。

    barImage=[[self.navigationController.navigationBar backgroundImageForBarMetrics:UIBarMetricsDefault] copy];//barImage is a UIImage point     
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                             forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = [UIImage new];

效果很好。 现在我需要将导航栏的背景图像恢复为默认值。

- (void)dealloc
{

    [self.navigationController.navigationBar setBackgroundImage:barImage
                                                  forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = nil;

}

这不起作用。我该怎么办?



Best Answer-推荐答案


不确定您是否仍然坚持这一点,但这里是反转效果的代码。我借了一个导航 Controller ,并将所有内容复制到原来的导航 Controller 中。

    UINavigationController *tempNavigationController = [[UINavigationController alloc]initWithRootViewController:[[UIViewController alloc]init]];
    [self.navigationController.navigationBar setBackgroundImage:[tempNavigationController.navigationBar backgroundImageForBarMetrics:UIBarMetricsDefault]
                                                  forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = [tempNavigationController.navigationBar shadowImage];
    self.navigationController.navigationBar.translucent = YES;
    self.navigationController.view.backgroundColor = tempNavigationController.view.backgroundColor;

    tempNavigationController = nil;

关于ios - 将导航栏的背景图像恢复为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24298375/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap