1

我正在 Snow Leopard 上使用 XCode 4.2 开发一个通用应用程序,并希望显示嵌入了 png 文件的圆形按钮。圆形按钮来自 cocoacontrols.com 的 UIGlossyButton 类。png 文件是视网膜和非视网膜变体。我在 iPhone 上将 UIButtons 的高度和宽度设置为 60、60,在 iPad 上设置为 120、120。我附上了 iPad 模拟器(非视网膜版本)的屏幕截图。我有点担心图标的大小。它看起来那么小。我希望该应用程序可以在 iPad 2 和 Mini 上运行,因为它们都是非视网膜显示器。这是在真正的 iPad2 设备上显示的正确方法吗?另外,圆形按钮在 iPad 上看起来完美吗?我还没有为开发者许可证付费,而且我没有 iPad。

以下是绘制圆角 UIGlossy 按钮的代码(引用圆角按钮类):

UIGlossyButton *b;
    b = (UIGlossyButton*) [self.view viewWithTag: 78];
    b.tintColor = [UIColor colorWithRed:0.2 green:0.3 blue:0.7 alpha:1.0];
    [b useWhiteLabel: YES];
    b.buttonBorderWidth = 2.0f;
    b.buttonCornerRadius = 200.0f; //iPad. For iPhone, I'm using 40.0f
    [b setGradientType: kUIGlossyButtonGradientTypeLinearSmoothExtreme];
    [b setExtraShadingType:kUIGlossyButtonExtraShadingTypeRounded];
}

截图如下所示,

http://www.use.com/2dcafe08c92ec00c41fe

请帮忙。

4

1 回答 1

2

您是否担心按钮太小,或者按钮顶部的灰度图像太小?如果您担心按钮的大小,那么更改按钮的框架会使它们变大。

但是,如果您担心按钮图像,请注意“视网膜显示屏”不会改变肉眼感知的图像大小,它只会在有适当@2x图像可用的情况下提高图像的分辨率。因此,图标图像的“大小”在视网膜和非视网膜显示器上都是相同的。也就是说,如果你在 iPad 1 和 iPad 3 上打开同一个 App,一切都会是相同的大小,但 iPad 3 屏幕上的图像会因为分辨率的提高而显得更流畅。

(这是因为当您设置 a 的大小时,UIButton您将其设置为points,而不是pixels.Points被设计为与分辨率无关 - 请参阅此处的点与像素部分。)

当然,有了 iPad Mini,无论如何,一切都会显得更小一些——但仍然是成比例的。

因此,如果按钮上的图标看起来太小,则需要使用较大的叠加图像。如果你这样做,图标会在所有显示器上看起来更大,视网膜和非视网膜都一样。

至于看起来“完美”的圆形按钮,我看不出按钮上的光泽有什么问题,就像你在上面展示的那样,但我会说它们上的图标太小了(而且很难看到灰色-蓝色的)。因此,我会使用更大的图标图像。- 但这是我个人的看法。


回复评论:

@2x 图像仅用于视网膜屏幕(iPad 3+、iPhone 4+)。你永远不应该直接加载@2x 图像,设备会处理这个问题。如果图标只在 iPad 上显得很小,请尝试制作图像的副本(普通和@2x),然后在 Photoshop/Preview/etc 中手动放大它们(比如 1.5x)。然后,修改您的代码,以便 iPhone 正常加载图像,但 iPad 加载这些稍大的图像。因此,您的 App 捆绑包可能包括:

  • buttonImage_Tag_iPhone.png--- 说 64x64
  • buttonImage_Tag_iPhone@2x.png--- 因此,128x128
  • larger_button_image_tag_iPad.png--- 说 96x96
  • larger_button_image_tag_iPad@2x.png--- 因此,192x192

然后您可以使用以下代码加载相应的图像:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // Use larger_button_image_tag_iPad.png
}
else {
    // Use buttonImage_Tag_iPhone.png
}

当然,您可以为图像命名任何您喜欢的名称,我只是在示例中使它们有所不同。

于 2012-12-24T06:08:11.307 回答