【问题标题】:CGRectMake for both iphone 5 and iphone 4适用于 iphone 5 和 iphone 4 的 CGRectMake
【发布时间】:2023-03-03 03:20:02
【问题描述】:

我知道 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 框架?

【问题讨论】:

  • 不,但这已经被问过很多次了。 CoreGraphics 使用点,而不是像素。
  • 那么当我只有像素大小时如何设置点?
  • 您不必在乎尺寸,CG 会自动为您计算出来。但这已经被回答了很多很多次了。

标签: iphone ios uiimageview viewdidload


【解决方案1】:
 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);

【讨论】:

  • 请解释一下这是什么。
【解决方案2】:

为什么不使用 img.size

就像这样:

UIImage *img = [UIImage imageNamed:@"yourImage"];
CGRect * rect = CGRectMake(5, 5, img.size.width,img.size.height);

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 所以,我只是 CGRect 制作一个 320*480 大小的矩形,它会自动转换为 648*960 大小的正确值?
    • 谢谢。这就是我从一开始就在做的事情,但我很困惑。我认为最好问问你们,这样我就可以继续这样做了。
    • 如果我想为 iphone 4s 和 5s 设置 CGRect 是否需要不同
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-24
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多