菜鸟教程小白 发表于 2022-12-13 06:50:40

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


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

<p> <img src="/image/F9lYZ.png" alt="Custom UINavigationBar with company brand"/> </p>

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

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

<p> <a href="https://stackoverflow.com/questions/4284209/objective-c-background-image-and-title-in-navigation-bar" rel="noreferrer noopener nofollow">Objective-C: Background image and title in Navigation Bar</a> </p>

<p> <a href="https://stackoverflow.com/questions/5992476/uinavigationbar-custom-title-position" rel="noreferrer noopener nofollow">UINavigationBar custom title position</a> </p>

<p> <a href="https://stackoverflow.com/questions/7764309/changing-the-uinavigationbar-background-image" rel="noreferrer noopener nofollow">Changing the UINavigationBar background image</a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你可以在 viewDidLoad 方法中这样做</p>

<pre><code>UIView *navbar = self.navigationBar;
navbar.translatesAutoresizingMaskIntoConstraints = NO;
[navbar addConstraints:[NSLayoutConstraint
                        constraintsWithVisualFormat:@&#34;V:&#34; // custom height
                        options:0
                        metrics:nil
                        views:NSDictionaryOfVariableBindings(navbar)]];

[navbar addConstraints:[NSLayoutConstraint
                        constraintsWithVisualFormat:@&#34;&#34;
                        options:0
                        metrics:nil
                        views:NSDictionaryOfVariableBindings(navbar)]];

self.widthConstraint = navbar.constraints; // width is the 2nd constraint
</code></pre>

<p>要调整后退按钮,请使用自定义后退按钮图像并根据需要在图像中放置图标。使用 设置自定义返回按钮。</p>

<pre><code>[ setBackIndicatorImage:];
[ setBackIndicatorTransitionMaskImage:];
</code></pre>

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

<pre><code>[ setTitleVerticalPositionAdjustment:10 forBarMetrics:UIBarMetricsDefault];
[ setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -10) forBarMetrics:UIBarMetricsDefault];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何修改 UINavigationBar 的大小、添加背景图片和移动标题标签位置,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22245231/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22245231/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何修改 UINavigationBar 的大小、添加背景图片和移动标题标签位置