我一直在反对这一点,我似乎无法弄清楚造成这个问题的原因。
我有一个仅在横向模式下运行的iPad应用。我需要支持1024x768和2048x1536分辨率屏幕,并使用设备的屏幕分辨率为opengl定义视口和保护。
这一切在1024x768设备上都能正常工作
然而,当在2048x1536设备上运行时,[UIScreen mainScreen] .bounds仍然返回1024x768
我的目标只是iOS 7.0及更高版本,而且我的资产库设置了启动图像。为了安全起见,我甚至为纵向模式添加了启动图像。
我有4张发布图片(只是白色的png): iPad Portrait iOS 7,8 1x:768x1024 iPad Portrait iOS 7,8 2x:1536x2048 iPad版iOS 7,8 1x:1024x768 iPad版iOS 7,8 2x:2048x1536
然而,当应用程序启动时,我的屏幕尺寸错误,因此我的OpenGL视图只占整个屏幕的1/4
任何帮助都会非常感激
编辑:
我修改了启动图像,以便我可以看到它正在使用哪一个,并且它正在按预期使用2x横向图像,但仍然返回的分辨率不正确。
答案 0 :(得分:0)
iOS中的尺寸以磅为单位计算。根据设备的不同,您的比例可能会有所不同。 pwd.getpwuid(os.getuid()).pw_dir
将返回比例。
不建议您实际使用屏幕的分辨率,而是使用边界,以便设备自动以适当的比例渲染所有内容。
此外,iPhone 6 Plus已缩小尺寸,因此获取比例并乘以界限将无法为您提供合适的屏幕分辨率。
答案 1 :(得分:0)
您可以通过以下代码行找到正确的尺寸。
[[UIScreen mainScreen] currentMode].size;