1

我正在尝试为我的后退按钮实现这种外观:

在此处输入图像描述

但无论我在 Photoshop 中何处采样绿色阴影,它永远不会正确。例如:

在此处输入图像描述

关于如何获得完全相同的外观的任何建议?

4

3 回答 3

2

色调就是这样——一种色调。iOS 使用该颜色作为基础,以普通导航栏的样式创建一个漂亮的按钮。

如果您想比着色更精确地控制按钮的外观,最好的办法是创建一组图像并-setBackButtonBackgroundImage:forState:barMetrics:使用它们。如果您希望在您的应用程序中查找所有条形按钮项,请在 上使用该方法+[UIBarButtonItem appearance],而不是特定条形按钮项。

于 2013-05-15T23:21:54.920 回答
1

为了产生BackBarButtonItem's 渐变,iOS 执行以下操作:

  1. 应用您指定的色调颜色
  2. 在后退按钮顶部应用透明覆盖

以下是它用于 iPhone 的视网膜显示叠加层(这些是使用UIKit-Artwork-Extractor获得的):

默认返回按钮覆盖

默认返回按钮覆盖

按下后退按钮覆盖

按下后退按钮叠加

不幸的是,没有办法告诉 iOS / UIBarButtonItem 不要在后退按钮上呈现这些叠加层(因此,这使默认导航栏和按钮在所有应用程序中都具有相当一致的外观)。

如果您不想应用此叠加层(它将在两种状态下使按钮变暗),您必须创建自己的后退按钮图像 - 用于defaultpressed状态、portrait方向landscaperetinanon-retina显示(共 8 张图像)。

正如Brent Royal-Gordon在他的回答中提到的那样,您可以使用appearance代理应用这些图像,UIBarButtonItem以便在整个应用程序中使用它们。例如,您将像这样为纵向设置默认背景图像状态:

UIImage *defaultBackImage = [UIImage imageNamed:@"My-Default-Back-Button"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:defaultBackImage forState: UIControlStateNormal barMetrics:UIBarMetricsDefault];
于 2013-05-16T01:00:24.610 回答
0

看起来按钮正在按钮上添加另一个半透明灰色层。我现在无法检查,但我会寻找设置以禁用半透明图层效果或尝试不同的按钮样式/状态。

于 2013-05-15T23:16:23.663 回答