0

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

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

问题是当我运行它时,矩形的大小和矩形的位置是关闭的(请注意,这是一个应用程序扩展,尽管我认为这无关紧要)。 这就是它的样子

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

提前致谢。

4

1 回答 1

1

UIKit 函数使用点,而不是像素。你不需要为 Retina/Non-Retina 放大任何东西。

于 2014-08-10T19:24:20.437 回答