首页 文章

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

提问于
浏览
1

我正在使用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 回答

  • 2

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

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

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

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

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

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


    Reponse to comment:

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

    • 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
    }
    

    当然,您可以根据自己的喜好命名图像,我只是为了示例而将它们区分开来 .

相关问题