1

我知道 iphone 5 尺寸是 640*960,而 iphone 4 和以前的 iphone 尺寸是 320*480。现在,我很困惑。如果我想让我的应用程序在这些不同的 iphone 上运行,如何计算图像视图或按钮的框架。例如,在 viewDidLoad 中,我有一个图像,它的大小为 630*100,名称为 someImage@2x.png,另一个大小为 315*50,名称为 someImage.png。图像相同,但大小不同。然后我创建了一个 UIImageView,其框架为 CGRectMake(5, 5, 315, 50),大小为 320*480。如果(iphone5)然后使用CGRectMake(10、10、630、100)的框架为UIImageView设置另一个框架,我是否必须这样做?我是否必须为这两种尺寸准备两个不同的 UIImageView 框架?

4

4 回答 4

5

iOS 上的所有坐标和大小都使用点而不是像素。普通 iPhone 屏幕 (320x480) 上的 1 点等于 1 像素。Retina iPhone 屏幕 (640x960) 上的 1 个点等于 2 个像素。

因此CGRectMake(5, 5, 315, 50)在 Retina 屏幕上自动转换为 x = 10, y = 10, width = 630, height = 100。

于 2013-05-08T10:45:06.917 回答
1

CGRect 在点而不是像素上工作,因此 iPhone4 和 iPhone5 没有宽度差异

如果您使用[[UIScreen mainScreen]applicationFrame].size.width两个设备,您将获得 320 宽度。

于 2013-05-08T10:24:11.720 回答
0

为什么不使用 img.size

像这样:

UIImage *img = [UIImage imageNamed:@"yourImage"];
CGRect * rect = CGRectMake(5, 5, img.size.width,img.size.height);
于 2013-05-08T10:24:15.803 回答
-3
 Uiscrolview *myScrolView= [[Uiscrolview alloc] initWithFrame:CGRectMake(self.view.frame.origin.x+50,self.view.frame.origin.x+50, self.view.frame.size.width-100, self.view.frame.size.height-300);
于 2013-10-11T16:54:53.767 回答