iPhone和iPad屏幕分辨率

5

我正在开发一款通用应用程序。我想知道,iPhone的屏幕分辨率(320 * 480)和iPad的屏幕分辨率(768 *1024)是否适用于所有iPhone(iPhone 3g、iPhone4等)和所有iPad。因为基于这些屏幕分辨率,我正在设置iPhone和iPad中textField的宽度以及UILabel的宽度。这些是否适用于视网膜和非视网膜屏幕?

3个回答

15
Retina iPhones 和 iPads 使用与非 Retina 设备相同的坐标系统。目前,所有的 iPad 都有一个逻辑坐标空间为 768x1024,而除 iPhone 5 外所有的 iPhone 都有一个逻辑坐标空间为 320x480。您的代码应该可以在 Retina 和非 Retina 设备上正常工作。
在 iPhone 5 上,除非您告诉 iOS 您想要使用扩展屏幕分辨率的 Default.png,否则您的应用程序将显示为屏幕顶部的黑色条纹。
您可以使用 [[UIScreen mainScreen] bounds] 检查屏幕分辨率。这个值在 Retina 和非 Retina 设备上是相同的。您可以通过检查 [[UIScreen mainScreen] scale] 的值来检测 Retina 设备;这里的值是每个逻辑坐标空间单位的物理像素数(非 Retina 为 1.0,Retina 为 2.0)。

是的,我已经为iPad和iPhone分别设置了相同的768x1024和320x480的分辨率。这意味着在视网膜和非视网膜屏幕上没有其他坐标。在方向(纵向和横向)上有区别吗?那么iPhone5呢?我需要再次更改代码以适应它的规格吗? - Nikhat Afshan
1
你提出了许多不同的问题。我建议你先阅读Apple关于UIViewController的文档:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html,其中涵盖了许多这些话题。 - Seamus Campbell

1

UIKitCoreGraphics使用点而不是像素。

视网膜和非视网膜设备具有相同数量的点,但具有不同数量的像素。这意味着相同的点值在不同设备上可能意味着不同的像素值。

回答您的问题,是的,相同布局的UILabel宽度将在视网膜和非视网膜设备上显示相同。

从Apple开发者文档中得知:

在iOS中,所有坐标值和距离都使用浮点值以称为点的单位指定。点的可测量大小因设备而异,并且在很大程度上是无关紧要的。关于点的主要事情是它们为绘制提供了一个固定的参考框架。

请查看“视图编程指南”中的“点与像素”部分: http://developer.apple.com/library/ios/documentation/windowsviews/conceptual/viewpg_iphoneos/WindowsandViews/WindowsandViews.html#//apple_ref/doc/uid/TP40009503-CH2-SW15


-1

您可以始终使用这些功能来获取操作系统并对界面进行必要的操作。

var pattern:RegExp = /iphone5/i; 
var str:String = Capabilities.os; 

if (str.search(pattern)==0)
{
    trace('iPhone5 Detected. Alter height.');
}else{
   trace('No need to change dimensions if developing at 960x640');
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接