Rob*_*Rob 3 rotation ios uistatusbar autolayout
我一直在寻找答案,但我只找到了有类似问题的人而不是这个问题,所以希望有人可以帮助我!
我有一个iPad应用程序.在iPad上,当您以纵向或横向方式握住iPad时,始终会显示带有时钟和电池的状态栏.出于这个原因,我的一些View控制器顶部有一些自定义工具栏,占据了这20个点.
我正在努力使我的应用程序具有普遍性.我注意到的第一件事是当iPhone在纵向模式下提供帮助时会显示状态栏,但是当它以横向模式保持时,状态栏会隐藏,现在我有一个20点太高的工具栏.
我总是隐藏或总是显示状态栏我不感兴趣.我认为在手机上将其隐藏在横向模式下的功能很好.我想要做的是能够检测状态栏何时被隐藏,以便我可以调整我的工具栏的Y位置(所以使其为0或-20).一个更好的解决方案是,如果我有办法设置我的布局约束来处理这种情况.
mat*_*att 22
正确的方法是:
使用具有正常高度的普通工具栏 - 不要在高度上设置任何约束.
将前导约束0添加到superview(不是superview margin),将约束0拖尾到superview(不是superview margin).
将顶部约束0添加到顶部布局指南(或安全区域的顶部).这似乎会在工具栏上方留出20个像素的空间,但笑一笑,然后继续.
将视图控制器设置为工具栏的委托(为此目的有一个委托出口).
让视图控制器采用UIBarPositioningDelegate并实现委托方法如下:
class ViewController: UIViewController, UIBarPositioningDelegate {
func position(for bar: UIBarPositioning) -> UIBarPosition {
return .topAttached
}
}
Run Code Online (Sandbox Code Playgroud)当有状态栏时,这将导致工具栏的明显高度向上扩展到状态栏后面,但是当没有状态栏时,它将具有正常高度并且在顶部上方.

| 归档时间: |
|
| 查看次数: |
4857 次 |
| 最近记录: |