iPhone / iPad圆形自定义按钮和png文件

时间:2012-12-24 05:02:31

标签: objective-c ios ipad uibutton

我正在使用Snow Leopard上的XCode 4.2开发一个通用应用程序,并希望显示嵌入了png文件的圆形按钮。圆形按钮来自cocoacontrols.com的UIGlossyButton类。 png文件既是视网膜也是非视网膜变种。我将UIButtons的高度和宽度设置为iPhone上的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

请帮忙。

1 个答案:

答案 0 :(得分:2)

你是否担心按钮的小巧性,或者它们上面的灰度图像的小小问题? 如果您担心按钮的大小,那么更改按钮的框架会使它们更大。

如果你担心按钮图像,请注意“视网膜显示”不会改变肉眼所感知的图像尺寸,只有适当的{{{}才能提高图像的分辨率。 1}}图片可用。因此,图标图像的“尺寸”在视网膜和非视网膜显示器上都是相同的。 也就是说,如果您在iPad 1和iPad 3上打开相同的应用程序,一切都会大小相同,但由于分辨率提高,iPad 3屏幕上的图像会显得更加平滑。

(这是因为当您设置@2x的大小时,请将其设置为UIButton,而不是pointspixels设计为与分辨率无关的 - 请参阅Points Versus Pixels section here。)

当然,使用iPad Mini,无论如何一切都会显得略微减小 - 但仍然是成比例的。

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

对于看起来“完美”的圆形按钮,我看不出上面显示的按钮上的光泽有什么问题,但我会说它们上面的图标太小了(很难看到)灰上 - 蓝)。因此,我会使用更大的图标图像。 - 但那是我个人的意见。


回复评论:

@ 2x图像仅用于视网膜屏幕(iPad 3 +,iPhone 4+)。你不应该直接加载@ 2x图像,设备会处理这个问题。如果图标仅在iPad上显得很小,请尝试复制图像(正常和@ 2x),并在Photoshop /预览/等中手动缩放(例如1.5倍)。然后,修改您的代码,以便iPhone正常加载图像,但iPad加载这些稍大的图像。因此,您的应用程序包可能包括:

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

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

larger_button_image_tag_iPad@2x.png

当然,您可以根据自己喜欢的方式命名图像,我只是将它们与示例区分开来。