【问题标题】:setFrame - I need some clarification for thissetFrame - 我需要对此进行一些澄清
【发布时间】:2012-02-09 12:50:21
【问题描述】:

我有一个用于以编程方式创建按钮的代码,这里是

UIImage *aroundImage = [UIImage imageNamed:@"locBar.png"];
    UIImage *aroundImageDown = [UIImage imageNamed:@"locBarColor.png"];
    UIButton *aroundButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [aroundButton setFrame:CGRectMake(240, 369, 80, 48)];  
    [aroundButton setImage:aroundImage forState:UIControlStateNormal];
    [aroundButton setImage:aroundImageDown forState:UIControlStateHighlighted];
    [aroundButton setImage:aroundImageDown forState:UIControlStateSelected];
    [aroundButton addTarget:self action:@selector(aroundMe) forControlEvents:UIControlEventTouchUpInside];    
    [self.view addSubview:aroundButton]; 

所以现在我已经为按钮设置了框架,但是如果在 iPhone4 上以 640x960 看到这个应用程序会怎样。然后我有不同的图像“locBar@2x.png 和 locBarColor@2x.png”,它们应该使用不同的 CGRectMake,还是应该使用它们?我的问题是如何为两种分辨率设置一个按钮,并以编程方式进行。

【问题讨论】:

  • 鉴于图片在 Retina 或简单的 iPhone 显示屏中自动调整,无论大小如何。但请确保存在带有@2x 的双倍尺寸图像
  • 所以我的代码可以用于 Iphone5>;@HChouhan02 的答案呢?
  • 他不清楚这个问题。并确保它不是 iPhone 5。这是一个简单的屏幕差异和视网膜像 iPhone 2,3 ,3G Vs iPhone 4, 4s

标签: iphone uibutton cgrectmake


【解决方案1】:

它是自动的 :) 如果可用并且设备具有 x2 比例,ios 将加载 @2x 版本。 帧以点为单位,而不是以像素为单位。

here的点与像素

【讨论】:

  • 所以你说我的代码没问题。我有@2x 图像,对于 iPhone5 我不需要更改任何内容
  • Arg,我不适合 iPhone 5,我看不到未来 :)
  • 我的意思是 iPhone4 弄糊涂了抱歉 :)
【解决方案2】:

如果你包含一个高分辨率版本的同名图片,但在扩展名前加上@2x,iOS会根据显示分辨率自动选择正确的分辨率,只要你使用[UIImage imageNamed:]函数,或者在 IB 中设置图像。

【讨论】:

    【解决方案3】:

    你必须把条件然后根据屏幕大小制作按钮框架并给他们图像。

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 2021-07-11
      相关资源
      最近更新 更多