菜鸟教程小白 发表于 2022-12-12 11:55:57

ios - 如何在 iOS 8 上修复横向导航栏项目的高度?


                                            <p><p>iOS 8 的一个功能似乎是在横向模式下隐藏状态栏。一 jar <a href="https://stackoverflow.com/a/25934854/79202" rel="noreferrer noopener nofollow">get the status bar back</a> ,这很好,但我实际上并不反对它被隐藏,只是我的应用程序中的导航栏被截断了顶部的几个像素,正如你在这个模拟器屏幕截图中看到的那样:</p>

<p> <img src="/image/BhDMV.png" alt="iOS 8 landscape orientation cuts off navigation bar pixels"/> </p>

<p>看到齿轮图标在屏幕顶部的位置了吗?它应该有更多的喘息空间。</p>

<p>如果我恢复状态栏会更好,但如果我可以让导航栏有更多空间,我不介意将其省略。研究 iOS 8 上的 Messages 应用程序,我发现导航栏的高度与我看到的相同,但撰写按钮变小了。如何更新我的应用以减小横向导航栏项目的大小?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>原来我一直在 <code>-viewDidLoad</code> 中设置该设置按钮的字体大小(它的标题只有 <code>U+2699</code> (⚙)):</p>

<pre><code>UIBarButtonItem *settingsButton = self.navigationItem.leftBarButtonItem;
}
                              forState:UIControlStateNormal
];
</code></pre>

<p>这就是为什么它在 iOS 8 上在水平方向上太大了,虽然在纵向上正好。</p>

<p>为了解决这个问题,我从 <code>-viewDidLoad</code> 中删除了这段代码,并添加了两个新方法来处理调整它的大小:</p>

<pre><code>- (void)setSettingsButtonFontSize:(CGFloat)size {
    UIBarButtonItem *settingsButton = self.navigationItem.leftBarButtonItem;
    }
                                  forState:UIControlStateNormal
    ];
}

- (void)setSettingsButtonFontSizeForVerticalSizeClass:(UIUserInterfaceSizeClass)sizeClass {
    ;
}
</code></pre>

<p>第一种方法只是设置指定的字体大小;第二个根据尺寸类参数选择尺寸。</p>

<p>为了使其大小合适,我将此代码添加到 <code>-viewWillAppear:</code>:</p>

<pre><code>if () {
    ;
} else {
    ;
}
</code></pre>

<p>所以我在 iOS 7 上得到了原始行为,但在 iOS 8 上,当垂直大小类紧凑时,图标的大小变为 20。</p>

<p>最后,我添加了 new-to-iOS-8 方法来处理旋转:</p>

<pre><code>- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection
            withTransitionCoordinator:(id&lt;UIViewControllerTransitionCoordinator&gt;)coordinator
{
    ;
    ;
}
</code></pre>

<p>所以现在,在 iPhone 上的 iOS 8 上,横向齿轮为 20,纵向齿轮为 28。现在它在风景中看起来不错,不会太拥挤:</p>

<p> <img src="/image/Y7rvC.png" alt="Proper UIBarButtonItem font sizing on iOS 8"/> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在 iOS 8 上修复横向导航栏项目的高度?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26066498/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26066498/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在 iOS 8 上修复横向导航栏项目的高度?