5

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

4

3 回答 3

15

Retina iPhone 和 iPad 使用与非 Retina 设备相同的坐标系。目前所有 iPad 的逻辑坐标空间都是 768x1024,除 iPhone 5 以外的所有 iPhone 的逻辑坐标空间都是 320x480。您的代码应该可以在 Retina 和非 Retina 设备上正常工作。

在 iPhone 5 上,您的应用程序将在屏幕顶部显示黑条,除非您通过包含 Default.png 扩展屏幕分辨率来告诉 iOS 您想要使用全屏。

您可以使用 来检查屏幕分辨率[[UIScreen mainScreen] bounds]。此值在 Retina 和非 Retina 设备上将相同。您可以通过检查 ; 的值来检测 Retina 设备[[UIScreen mainScreen] scale]。这里的值是每单位逻辑坐标空间的物理像素数(非 Retina 为 1.0,Retina 为 2.0)。

于 2013-02-23T05:30:36.067 回答
1

UIKitCoreGraphics使用点而不是像素。

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

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

来自 Apple 开发者文档:

In iOS, all coordinate values and distances are specified using floating-point values in units referred to as points. The measurable size of a point varies from device to device and is largely irrelevant. The main thing to understand about points is that they provide a fixed frame of reference for drawing.

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

于 2013-02-23T06:08:11.640 回答
-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');
}
于 2013-04-12T10:05:01.540 回答