gpt4 book ai didi

iphone - 为什么 [UIApplication sharedApplication].statusBarOrientation 返回错误值

转载 作者:行者123 更新时间:2023-12-03 19:21:17 32 4
gpt4 key购买 nike

您好,在我的应用程序中,我想知道 statusbarorientation 值。为此,我正在使用 [UIApplication sharedApplication].statusBarOrientation 方法。实际上,该方法必须在风景模式下返回 4,在肖像模式下返回 2。但此方法以相反的方式返回值。横向 2 和纵向 4 的方法。请让我知道如何解决此问题。在 supportedInterfaceOrientations 方法中,我使用 return UIInterfaceOrientationMaskAll;

请帮我解决这个问题。

最佳答案

发生这种情况可能是因为 UIDeviceOrientationLandscapeRight 被分配给 UIInterfaceOrientationLandscapeLeft 并且 UIDeviceOrientationLandscapeLeft 被分配给 UIInterfaceOrientationLandscapeRight。

这样做的原因是旋转设备需要沿相反方向旋转内容。

从 iOS 8 开始,您应该使用 UITraitCollection 和 UITraitEnvironment API 以及这些 API 中使用的大小类属性,而不是使用 UIInterfaceOrientation 常量或以其他方式根据界面方向编写应用程序。

无论如何,以这种方式接受培训对我来说很有效。

var orientation = UIApplication.SharedApplication.StatusBarOrientation;
switch (orientation)
{
case UIInterfaceOrientation.PortraitUpsideDown:
// The device is in portrait mode but upside down, with the device held upright and the home button at the top.
case UIInterfaceOrientation.Portrait:
// The device is in portrait mode, with the device held upright and the home button on the bottom.
case UIInterfaceOrientation.LandscapeLeft:
// The device is in landscape mode, with the device held upright and the home button on the left side.
case UIInterfaceOrientation.LandscapeRight:
// The device is in landscape mode, with the device held upright and the home button on the right side.
case UIInterfaceOrientation.Unknown
// The orientation of the device cannot be determined.
}

还要考虑一下

If your app has rotatable window content, however, you should not arbitrarily set status-bar orientation using this method. The status-bar orientation set by this method does not change if the device changes orientation.

关于iphone - 为什么 [UIApplication sharedApplication].statusBarOrientation 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469462/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com