iOS视网膜显示屏上的坐标和尺寸均已关闭

时间:2014-08-10 19:20:30

标签: ios objective-c retina

我有这个Objective-c代码在屏幕中央显示一个矩形:

modalView = [[UIView alloc] initWithFrame:CGRectMake(24, 404, 592, 353)]  
modalView.backgroundColor = [UIColor redColor];

问题在于,当我运行它时,矩形的大小和矩形的位置都是关闭的(请注意,这是一个应用程序扩展,但我认为这不重要)。 This is what it looks like

我做了一些谷歌搜索并遇到了self.view.contentScaleFactor。我在控制台中打印出这个值,虽然我正在模拟一个带有视网膜显示器的iPhone 5s,但我一直得到1.0而不是2.0。我继续打印[UIScreen mainScreen].scale并得到2.0,所以我手动设置self.view.contentScaleFactor = [UIScreen mainScreen].scale这并没有什么不同。我发现,如果我将CGRectMake中的所有数字除以2就可以了,但这不是一个非常优雅的解决方案。我怎么解决这个问题?为什么会这样?

提前致谢。

1 个答案:

答案 0 :(得分:1)

UIKit的功能是点,而不是像素。你不需要为Retina / Non-Retina扩展任何东西。