我正在尝试为我的后退按钮实现这种外观:
但无论我在 Photoshop 中何处采样绿色阴影,它永远不会正确。例如:
关于如何获得完全相同的外观的任何建议?
色调就是这样——一种色调。iOS 使用该颜色作为基础,以普通导航栏的样式创建一个漂亮的按钮。
如果您想比着色更精确地控制按钮的外观,最好的办法是创建一组图像并-setBackButtonBackgroundImage:forState:barMetrics:
使用它们。如果您希望在您的应用程序中查找所有条形按钮项,请在 上使用该方法+[UIBarButtonItem appearance]
,而不是特定条形按钮项。
为了产生BackBarButtonItem
's 渐变,iOS 执行以下操作:
以下是它用于 iPhone 的视网膜显示叠加层(这些是使用UIKit-Artwork-Extractor获得的):
默认返回按钮覆盖
按下后退按钮叠加
不幸的是,没有办法告诉 iOS / UIBarButtonItem 不要在后退按钮上呈现这些叠加层(因此,这使默认导航栏和按钮在所有应用程序中都具有相当一致的外观)。
如果您不想应用此叠加层(它将在两种状态下使按钮变暗),您必须创建自己的后退按钮图像 - 用于default
和pressed
状态、portrait
方向landscape
和retina
和non-retina
显示(共 8 张图像)。
正如Brent Royal-Gordon在他的回答中提到的那样,您可以使用appearance
代理应用这些图像,UIBarButtonItem
以便在整个应用程序中使用它们。例如,您将像这样为纵向设置默认背景图像状态:
UIImage *defaultBackImage = [UIImage imageNamed:@"My-Default-Back-Button"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:defaultBackImage forState: UIControlStateNormal barMetrics:UIBarMetricsDefault];
看起来按钮正在按钮上添加另一个半透明灰色层。我现在无法检查,但我会寻找设置以禁用半透明图层效果或尝试不同的按钮样式/状态。