自定义UINavigationBar背景图像显得比原始图像暗

我正在定制一个UINavigationBar,如下所示:

UIImage * img = [UIImage imageNamed:@"background.png"]; [[UINavigationBar appearance] setBackgroundImage:img forBarMetrics:UIBarMetricsDefault]; 

我的原始图片background.png看起来像这样:

原版的

它有一个平面颜色#4b0367

生成的NavigationBar如下所示:

结果吧

它的颜色#311253与原版不同! 显然UIKit会改变颜色。

注意:

  • 设置tintColor无效。
  • 在我的情况下,设置透明背景图像+颜色不是一个合适的解决方案。

有人知道底层机制是如何运作的吗? 如何才能使原始图像正确显示?