2013-05-08 100 views
1

我知道iPhone 5的尺寸是640 * 960和iPhone 4和以前的iPhone尺寸是320 * 480。现在,我很困惑。如果我想让我的应用程序在这些不同的iPhone上工作,如何计算图像视图或按钮的帧。例如在viewDidLoad中,我有一个图像,它的大小为630 * 100,名称为[email protected],另一个大小为315 * 50,名称为someImage.png。图像是相同的,但大小是不同的。然后我创建了一个带有CGRectMake(5,5,315,50)帧的UIImageView,它的尺寸为320 * 480。如果(iphone5)然后用CGRectMake(10,10,630,100)的框架为UIImageView设置另一个框架,我需要做些什么?我必须为这两种尺寸准备两个不同的UIImageView框架吗?上的点CGRectMake为iPhone 5和iPhone 4

+4

不,但这已被问了很多很多次。 CoreGraphics使用点,而不是像素。 – 2013-05-08 10:19:16

+0

那么我如何设置点,当我只有像素的大小? – 2013-05-08 10:59:16

+0

你不会对尺寸有任何顾忌,CG会自动为你解决问题。但是这已经被很多次的回答了。 – 2013-05-08 11:06:56

回答

5

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

因此CGRectMake(5, 5, 315, 50)自动转换为视网膜屏幕上的x = 10,y = 10,宽度= 630,高度= 100。

+0

所以,我只是CGRect为320 * 480大小的矩形,它会自动转换为648 * 960大小的正确值? – 2013-05-08 10:57:22

+0

是的,就是这样。 – 2013-05-08 11:00:21

+0

谢谢。这就是我从一开始就在做的事情,但我很困惑。我认为最好问问你们,所以我可以继续这样做。 – 2013-05-08 11:15:10

1

的CGRect工作不是像素所以在iPhone4和iPhone5的

没有宽度diffrence如果你使用[[UIScreen mainScreen]applicationFrame].size.width你得到320宽度的两个设备。

0

为什么不使用img.size

就像这样:

UIImage *img = [UIImage imageNamed:@"yourImage"]; 
CGRect * rect = CGRectMake(5, 5, img.size.width,img.size.height); 
-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); 
+4

请解释这是什么。 – 2013-10-11 17:15:45

+0

我永远无法让我的Uiscrolviews正常工作。 – atonyc 2014-06-25 20:25:09

相关问题