我已经在@ 1x版本中完成了我的应用,并创建了许多带代码的界面,这意味着:
一切看起来都很棒。如果我现在在视网膜显示器上使用该应用程序,显然一切都可以扩展到@ 2x。我有一些我用烟花/ photoshop设计的图形,当然已经制作了它们的@ 2x版本工作得很好。我的问题是如上所述的标准界面元素。
问题:我将如何进行
用于创建我当前使用的分隔符视图:
UIView *separatorLine = [[UIView alloc]initWithFrame:CGRectMake(0,200,320,1)];
[self.view addSubview:seperatorLine];
在@ 1x分辨率下工作正常,但在@ 2x中被高达2px高度,而不是在@ 2x中显示为:
seperatorLine.frame == (0,400,640,1)
我如何更改这样的代码以处理这两种分辨率?
答案 0 :(得分:2)
您可以按
检查屏幕比例CGFloat scale = ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] ? [UIScreen mainScreen].scale : 1.0);
如果比例等于2.0,则您在视网膜显示屏上,并可以更改分隔符的框架,例如,更改为CGRectMake(0.0, 200.0, 320.0, 0.5)
。
答案 1 :(得分:1)
使用Apple的Cocoa元素时,您无需担心任何问题,这对于我们的开发人员而言是视网膜显示的最佳部分!
你需要像你说的那样对你的图形进行@ 2x,但设备会根据需要自动缩放Cocoa显示元素。 Apple已明确区分“像素”和“点”,并使用点设置帧。传统显示器上的点为1px,视网膜显示器上的点为2px。这意味着事实上,如果您将帧设置为CGRectMake(0,400,640,1)
,如您所提到的那样将线放在屏幕底部并且是屏幕宽度的两倍(当然会被屏幕边界剪切) 。如果你真的希望在视网膜显示器上该线高1px,请将其设为图像。标准图像可以是320x1,@ 2x可以是640x1。
如果你想看看我的意思但没有视网膜显示设备,你可以在模拟器中运行,然后从菜单硬件>中选择。装置> iPhone(Retina)
祝你好运。