UIView框架大于iPhone的屏幕

时间:2011-02-17 19:31:05

标签: iphone objective-c uiview bounds

我在XCode中创建了一个基于iPhone View的新项目,我看一下生成的xib,名称为myAppViewController.xib。在该xib中,生成的视图的框架如下所示:{ x = 160, y = 230, w = 320, h = 460 }此视图应该填满整个屏幕,不包括状态栏。我希望视图的框架看起来像这样:旧版iPhone的{ x = 0, y = 0, w = 240, y = 300 }和视网膜显示的{ x = 0, y = 0, w = 480, h = 600 }。但是,我得到了上面那些奇怪的值。任何人都可以向我解释这里发生了什么,它在我的另一个项目中破坏了我的一些绘图代码(绘制的区域是基于视图的框架)。

3 个答案:

答案 0 :(得分:3)

Retina显示实际上并没有增加视图的磅值 当Apple推出它时,它在像素之间产生了差异。视网膜显示器具有更多像素,但点数相同 您的代码中与UIKit相关的所有内容通常都是分数,因此不需要进行任何更改,100x100的视图仍然是该大小。

我真的不明白你的问题,但框架值可以通过界限属性和中心属性修改...所以检查你是否不是修改那些。

答案 1 :(得分:2)

框架是这样的:

CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)

屏幕宽度为320px宽,480px高。状态栏是20px。因此你想要的是:

CGRectMake(0,0,320,460)

无论是否视网膜,设备都会根据需要进行转换。

答案 2 :(得分:0)

坐标是点,而不是像素。无论屏幕的分辨率如何,坐标系均为320 X 480。