为后退按钮获得正确的色调

时间:2013-05-15 22:55:44

标签: ios cocoa-touch

我正在努力实现我的后退按钮:

enter image description here

但无论我在哪里品尝photoshop中的绿色阴影,它都永远不会出现。例如:

enter image description here

关于如何实现完全相同的外观的任何建议?

3 个答案:

答案 0 :(得分:2)

色调颜色恰好是一种色调。 iOS使用该颜色作为基础,以普通导航栏的方式创建漂亮的按钮。

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

答案 1 :(得分:1)

为了生成BackBarButtonItem的渐变,iOS会执行以下操作:

  1. 应用您指定的色调颜色
  2. 在后退按钮上方应用透明叠加层
  3. 以下是用于iPhone的视网膜显示器覆盖(这些是使用UIKit-Artwork-Extractor获得的):

    Default Back Button Overlay

    默认后退按钮叠加

    Pressed Back Button Overlay

    按下按钮Overalay

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

    如果您不想应用此叠加层(它会使两个状态下的按钮变暗),您必须为defaultpressed状态创建自己的后退按钮图像, portraitlandscape方向,retinanon-retina显示(总共8张图片)。

    Brent Royal-Gordon中提及answer时,您可以使用appearance代理UIBarButtonItem来应用这些图片,以便在整个应用中使用它们。例如,您为纵向方向设置了这样的默认背景图像状态:

    UIImage *defaultBackImage = [UIImage imageNamed:@"My-Default-Back-Button"];
    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:defaultBackImage forState: UIControlStateNormal barMetrics:UIBarMetricsDefault];
    

答案 2 :(得分:0)

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