OStack程序员社区-中国程序员成长平台

标题: ios - 如何修改 UINavigationBar 的大小、添加背景图片和移动标题标签位置 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 06:50
标题: ios - 如何修改 UINavigationBar 的大小、添加背景图片和移动标题标签位置

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

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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4