使用自动布局约束,我正在尝试设置一个子视图的垂直位置,即使显示呼叫状态栏(或其他非标准状态栏),其位置也不会改变。我不想将视图相对于底部布局指南定位,因为我希望其y坐标在3.5英寸和4英寸设备上相同。
下面是我想要发生的事情的示意图:
[标准状态栏] [呼叫状态栏]
最初,我使用“Top Space to: Top Layout Guide”约束来设置子视图的y位置。使用此配置,呼叫状态栏将子视图向下推20像素。
接下来,我尝试用“Top Space to: Superview”替换该约束,其中Superview是控制器的根视图。但没有任何变化。是否有其他方法可以使用自动布局约束来保持视图的恒定y位置?我知道我可以通过订阅UIApplicationDidChangeStatusBarFrameNotification来手动处理此问题,但如果可能的话,我想保持简单。
下面是我想要发生的事情的示意图:
[标准状态栏] [呼叫状态栏]
最初,我使用“Top Space to: Top Layout Guide”约束来设置子视图的y位置。使用此配置,呼叫状态栏将子视图向下推20像素。
接下来,我尝试用“Top Space to: Superview”替换该约束,其中Superview是控制器的根视图。但没有任何变化。是否有其他方法可以使用自动布局约束来保持视图的恒定y位置?我知道我可以通过订阅UIApplicationDidChangeStatusBarFrameNotification来手动处理此问题,但如果可能的话,我想保持简单。
UIApplicationWill/DidChangeStatusBarFrameNotification
通知来解决此问题。我真正想知道的是是否有一种更简单的解决方案,不需要手动调整视图框架。我开始觉得答案是“否”…… - gilby