如何获得视网膜显示分辨率?

时间:2012-02-21 18:50:29

标签: objective-c

我喜欢这个:

CGRect ScreenSize = [[UIScreen mainScreen]bounds];

但iphone 4的结果是480 * 320。

如何在iphone 4中获得视网膜显示的分辨率?

3 个答案:

答案 0 :(得分:3)

你不需要。 操作系统会自动从320px x 480px转换为视网膜显示。 这是因为屏幕的分辨率实际上并不高,只是具有较高的像素密度(< 3Gs)每4px 1px

这个想法是让所有东西看起来更清晰/更好,而不是让你可以更多地适应屏幕。 (否则你必须加倍所有的尺寸,才能看到它)

但如果您真的需要,可以使用以下

UIScreen *MainScreen = [UIScreen mainScreen];
UIScreenMode *ScreenMode = [MainScreen currentMode];
CGSize Size = [ScreenMode size]; // <--- Real screen size

答案 1 :(得分:0)

首先检测设备是否支持视网膜

CGRect screenSize = [[UIScreen mainScreen] bounds];

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] == YES) {
     // RETINA DISPLAY
     screenSize.size.width = screenSize.size.width * [[UIScreen mainScreen] scale];
     screenSize.size.height = screenSize.size.height * [[UIScreen mainScreen] scale];
}

答案 2 :(得分:0)

为了清晰起见,将接受的答案转换为Swift:

var MainScreen: UIScreen = UIScreen.mainScreen()
var ScreenMode: UIScreenMode = MainScreen.currentMode()
var Size: CGSize = ScreenMode.size()
相关问题