屏幕大小(像素)(iPhone 6)

屏幕大小(像素)(iPhone 6),iphone,Iphone,根据这里的页面:iPhone 6的屏幕尺寸(像素)应该是750×1334(1334x750横向),但是我的应用程序似乎认为横向屏幕尺寸是667/375,并且没有正确地呈现给整个屏幕。下面是我用来获取应用程序启动时的窗口尺寸以及opengl的代码 ApplicationdFinishLaunching: CGRect rect = [[UIScreen mainScreen] bounds]; CGFloat screenW = rect.size.width; CGFloat screenH =

根据这里的页面:iPhone 6的屏幕尺寸(像素)应该是750×1334(1334x750横向),但是我的应用程序似乎认为横向屏幕尺寸是667/375,并且没有正确地呈现给整个屏幕。下面是我用来获取应用程序启动时的窗口尺寸以及opengl的代码

ApplicationdFinishLaunching:

CGRect rect = [[UIScreen mainScreen] bounds];
CGFloat screenW = rect.size.width;
CGFloat screenH = rect.size.height;
initGL:

CGRect rect = [glView bounds];
CGFloat screenW = rect.size.width;
CGFloat screenH = rect.size.height;
glOrthof(0, screenW, 0, screenH, -1, 1);

两个函数输出相同的值:667w/375h。这可能与我在splash图像中遇到的问题有关,基本上我必须从
Default重命名它吗-667h@2x.png
默认值-375w-667h@2x.png
要使其正确加载?我觉得这是我在这里错过的一件简单的事情,任何帮助都将不胜感激。

没关系。你看到的是逻辑点。这些将转换为物理像素。对于iPhone 6,它是2x。

好的,所以当绘制到屏幕时,我应该使用点而不是像素?我已经根据旧的iPhone屏幕尺寸对大部分图形进行了硬编码,因此只要将480/320的实例更改为iPhone 6尺寸的
值就可以解决这个问题了?如果是的话,我还有一个问题。然后如何使用其他屏幕大小进行渲染?假设我有iPhone 3G、4、5、6和6+的用户。对于每一组点值,我是否必须有不同的绘图代码?始终在代码中使用点进行推理。关于位图,您需要为旧版iphone(3GS)提供一套单独的位图,为包括iphone 6+在内的新版本提供2倍和3倍的位图。如果您使用CGGraphics或简单的UIView配置创建视觉效果,那么您将免费将其渲染为清晰的像素。稍后,我将尝试使用
glView bounds
UIScreen bounds
提供的值替换所有硬编码的屏幕尺寸,看看这是否解决了错误,我只是担心他们提供了不正确的值。如果我还有任何问题,我会发回的,非常感谢。如果你不介意我再问一个快速的问题,我获得全屏尺寸的方法完全有效吗?我想我以前在这段代码返回的维度方面遇到过一些问题,所以如果有更好的方法,我肯定会感兴趣:)不,这是多年来正确的方法,它仍然有效。