【问题标题】:iPhone/iPad rounded custom button and png filesiPhone/iPad 圆形自定义按钮和 png 文件
【发布时间】:2012-12-10 15:15:00
【问题描述】:

我正在 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];
}

截图如下,

请帮忙。

【问题讨论】:

    标签: objective-c ios ipad uibutton


    【解决方案1】:

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

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

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

    当然,对于 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
    }
    

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

    【讨论】:

    • 周到的回复。这些 png 文件是我在 Interface Builder 中设置的常规 png 文件。我也有@2x(视网膜显示屏)的。在 iPhone 模拟器(视网膜和非视网膜)上,我觉得没问题。它在 iPad 上,它看起来像你提到的那样小。那么,在视网膜/非视网膜 iPad 上,您是否总是希望我一直加载 2x 以使图标显示更大?顺便说一句,您如何看待用户看到的按钮大小?
    • @Hema 查看修改后的答案:)
    • 在考虑了您的建议后,我重新访问了 iPhone 模拟器,却发现那里的图标也更小了。那么,如果圆形按钮的尺寸在 iPhone 上为 60,60 [高度、宽度],在 iPad 上为 120、120,那么对于视网膜和非视网膜变体,每种设备的理想图标尺寸是多少?跨度>
    • @Hema 视网膜变体应该始终与非视网膜尺寸相同,因为设备会为您处理点到像素的转换。 60x60 适合 iPhone,我相信人机界面指南中描述了最小值,但 60x60 绝对没问题。至于 iPad,不幸的是,答案是“看起来最好的”,只要确保当您增大按钮尺寸时,您还可以缩放您的 iPad 按钮图像(和 2x 图像)。同样,尺寸应该与正常视网膜相同。 (试试 iPad 的 60x60,你可能会感到惊讶!)
    • 我在 iPad 上也将圆形按钮尺寸减小到 60x60,并且在 iPad 模拟器上看起来很小。我想确认我们讨论的是圆形 UIButton 的尺寸,而不是图像。我还使用预览工具将非视网膜 png 文件缩放到 64x64,它看起来很丑陋和块状。我正在使用 Glyphish Pro 套装,看起来他们的 png 很小(28x28 和 2x 是 56x56)。我正在寻找最好的商业/免费图标集。我正在寻找的只是三个图标(一个正在运行的人、设置和帮助/关于)。我是一个非常糟糕的设计师,并且来自开发人员背景。
    猜你喜欢
    • 2012-04-10
    • 2011-03-31
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2014-07-18
    • 1970-01-01
    相关资源
    最近更新 更多