gpt4 book ai didi

iphone - UIDeviceOrientationDidChangeNotification 返回的设备方向不准确

转载 作者:行者123 更新时间:2023-12-03 19:04:45 25 4
gpt4 key购买 nike

我正在监听 UIDeviceOrientationDidChangeNotification,以便根据设备的方向调整我的 UI。

问题是我从通知中获得的设备方向似乎不准确。如果我从纵向和垂直方向的手机开始(就像用它拍照一样),我从通知中获得的方向是正确的。当手机倾斜接近水平时(如平放在桌面上),方向会切换为横向。这种情况发生在手机真正平放在 table 上之前。而且这根本不需要将手机横向旋转。就好像它对风景有一种偏爱。

当使用其他应用程序(例如邮件)时,我没有看到相同的行为。似乎邮件只有在确实确定您已转到新方向时才会切换方向。

非常感谢任何帮助。

谢谢

最佳答案

我发现了我的问题。

在 viewWillAppear 中我有:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(didChangeOrientation:) name: UIDeviceOrientationDidChangeNotification object:
[UIDevice currentDevice]];

这是通知处理程序:

- (void) didChangeOrientation: (id)object {
UIInterfaceOrientation interfaceOrientation = [[object object] orientation];
//DLog(@"val is %i", interfaceOrientation);
if (interfaceOrientation == UIDeviceOrientationLandscapeLeft || interfaceOrientation == UIDeviceOrientationLandscapeRight || interfaceOrientation == UIDeviceOrientationPortrait) {
[self orientInterface:interfaceOrientation];
}

通过检查方向是两个横向或两个纵向之一,我忽略了 UIDeviceOrientationFaceUp 和 UIDeviceOrientationFaceDown 方向。这样,将手机设置为这两个方向之一就不会影响我的界面方向。

我的问题是我没有考虑faceUp和faceDown,而是在假设横向的else语句中处理它们。

关于iphone - UIDeviceOrientationDidChangeNotification 返回的设备方向不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380539/

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