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

ios - 如何修改 UINavigationBar 的大小、添加背景图片和移动标题标签位置

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

我有几个即将实现的设计。这些设计有一些重叠,我想为我的项目做一个通用的。应用应该是基于导航的,并且在导航栏中都有公司品牌形象,但导航栏应该比原来的大,标题应该在主图像下方。

Custom UINavigationBar with company brand

上方蓝色部分是整个项目中相同的品牌形象,下方灰色部分是标题标签所在的位置,表示标题标签需要调整。我希望能够为我的 View Controller 使用 setTitle。后退按钮应该在蓝色部分居中,所以稍微调整到屏幕顶部,而不是在导航栏中居中。

我从以下问题中获得了一些灵感,类别将是一个不错的选择,还是我在这里错了?你有什么建议吗?

Objective-C: Background image and title in Navigation Bar

UINavigationBar custom title position

Changing the UINavigationBar background image



Best Answer-推荐答案


你可以在 viewDidLoad 方法中这样做

UIView *navbar = self.navigationBar;
navbar.translatesAutoresizingMaskIntoConstraints = NO;
[navbar addConstraints:[NSLayoutConstraint
                        constraintsWithVisualFormat"V:[navbar(80)]" // custom height
                        options:0
                        metrics:nil
                        views:NSDictionaryOfVariableBindings(navbar)]];

[navbar addConstraints:[NSLayoutConstraint
                        constraintsWithVisualFormat"[navbar(320)]"
                        options:0
                        metrics:nil
                        views:NSDictionaryOfVariableBindings(navbar)]];

self.widthConstraint = navbar.constraints[1]; // width is the 2nd constraint

要调整后退按钮,请使用自定义后退按钮图像并根据需要在图像中放置图标。使用 [UINavigationBar 外观] 设置自定义返回按钮。

[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed"IconBack"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage new]];

为了调整标题,使用 UINavigationBar 和 UIBarButtonItem 外观的相应方法。

[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:10 forBarMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -10) forBarMetrics:UIBarMetricsDefault];

关于ios - 如何修改 UINavigationBar 的大小、添加背景图片和移动标题标签位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22245231/

回复

使用道具 举报

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

本版积分规则

关注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