平板时iPad设备方向总是错误的

平板时iPad设备方向总是错误的,第1张

概述我知道这个主题在SO上引起了很多关注,但没有一个“解决方案”对我有用.这是情况: > iPad在我的桌面上是平的(面朝上的设备方向),主屏幕是完全可读的,但主页按钮在顶部.所以这有效地显示了“Portrait Up Side Down”界面方向. >我开始我的应用程序 >该应用程序调用beginGeneratingDeviceOrientationNotifications以确保加速计正在工作,并 我知道这个主题在SO上引起了很多关注,但没有一个“解决方案”对我有用.这是情况:

> iPad在我的桌面上是平的(面朝上的设备方向),主屏幕是完全可读的,但主页按钮在顶部.所以这有效地显示了“Portrait Up SIDe Down”界面方向.
>我开始我的应用程序
>该应用程序调用beginGeneratingDeviceOrIEntationNotifications以确保加速计正在工作,并且方向通知进入.
>启动时,我的应用程序会查询“界面方向”和“设备方向”.结果是:

STARTUP ORIENTATION:     INTERFACE ORIENTATION: UIInterfaceOrIEntationPortrait     DEVICE ORIENTATION: UIDeviceOrIEntationFaceUp

Apple文档说每个应用程序(界面?)都是纵向开始的,所以这很有意义.设备方向也是正确的,因为这确实是正面朝上的.
>启动后,第一个方向通知即将进入:

NOTIFICATION 1:     INTERFACE: UIInterfaceOrIEntationPortrait       DEVICE: UIDeviceOrIEntationPortrait

再次,界面的肖像,(这与我期望的相反,主屏幕显示自己向上朝下的方向),该设备也被称为纵向(不是这样,但这是显而易见的一个聪明的方案,可以解决当设备面朝上或朝下时如何定位应用内容的方法.
>正如许多人提到的那样,另一个(只有一个,而不是两个)定向通知如下:

NOTIFICATION 2:     INTERFACE: UIInterfaceOrIEntationPortrait       DEVICE: UIDeviceOrIEntationFaceUp

接口仍然是纵向(而不是正面向下),并且设备面朝上(这是正确的).

我的应用程序正确调整自己,并显示在一边,这是完全错误的.

我该怎么做才能知道上一个已知的方向,主屏幕和iPad上的其他用户界面显示的方向?

这是一个只有窗口和视图的OpenGL应用程序.我已经在混合中添加了一个UIVIEwController来查看它是否提供了更准确的信息,但它只是相同而且错误.我知道我不是唯一一个在这方面苦苦挣扎的开发者,因为我在iPad上的许多应用程序也做错了,你必须倾斜设备才能使它们正确定位.但有些应用确实似乎做对了,秘诀是什么?

解决方法 好吧,我不高兴承认我确实忽略了迷宫中的一个重要部分,即iOS设备/接口方向:应用程序的Info.pList文件中的UISupportedInterfaceOrIEntations属性.

我读到了它并且(错误地)认为通过指定支持的方向,行为不会改变.但事实证明,它不仅仅是方向通知的过滤器(它不是,您仍会收到不受支持的定向的通知),但通知的类型/顺序根据设备的方向而有所不同.

就我而言,我对“面朝上”和“面朝下”的方向不感兴趣,所以我只是忽略了它们.这不是一个好主意.如果明确指定支持的方向:

<key>UISupportedInterfaceOrIEntations</key><array>    <string>UIInterfaceOrIEntationPortrait</string>    <string>UIInterfaceOrIEntationPortraitUpsIDeDown</string>    <string>UIInterfaceOrIEntationLandscapeleft</string>    <string>UIInterfaceOrIEntationLandscapeRight</string></array>

…然后你仍会看到我在上面评论中描述的行为:

“从本质上讲,该设备假装用户真的很快将它摇回到一个直立位置,然后退回去.”

…但是第一次通过的方向并不总是肖像,而是正确的方向.

因此,在我在我的问题中描述的场景中,设备方向如下:

AT STARTUP: UIDeviceOrIEntationFaceUpNOTIFICATION 1: UIDeviceOrIEntationPortraitUpsIDeDown <-- CORRECT!NOTIFICATION 2: UIDeviceOrIEntationFaceUp <-- CORRECT,BUT IGnorE

我不想走得那么远,并称这是Apple的一个错误,但我不清楚为什么当你没有指定UISupportedInterfaceOrIEntations时,NOTIFICATION 1中的传递方向总是纵向的.

请注意,这仅适用于iPad. iPod touch和iPhone上的主屏幕UI始终处于纵向状态,因此更容易了解发布时的方向(您猜对了:肖像)……

总结

以上是内存溢出为你收集整理的平板时iPad设备方向总是错误的全部内容,希望文章能够帮你解决平板时iPad设备方向总是错误的所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1084605.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存