【问题标题】:Xcode - Colours look different but should be the sameXcode - 颜色看起来不同但应该相同
【发布时间】:2026-01-17 19:40:01
【问题描述】:

在我的应用中,我使用以下颜色:#3D6D86

它被设置为视图控制器上的背景颜色,也被设置为不同视图控制器上导航栏的颜色。但是问题是颜色看起来不同。我将十六进制转换为正确类型的UIColor 表示法,以便与swift 一起使用,因此我也看不到问题所在。我将在下面附上一些屏幕截图,向您展示我的意思:

-----------编辑-----------

现在,当我使用此代码尝试移除半透明时: UINavigationBar.appearance().translucent = false UINavigationBar.appearance().barTintColor = UIColor(red:0.24, green:0.43, blue:0.53, alpha:1.0)

我在导航栏和应该在它下面的图像之间留下了一个空白。有什么想法吗?

【问题讨论】:

  • 在IOS 8中,导航栏默认是透明的。您的导航栏添加此差异
  • 上方截图背景色为#305A73,下方截图背景色为#598398
  • 试试HSBA:#3D6D86等于UIColor(hue: 0.5571, saturation: 0.5448, brightness: 0.5255, alpha: 1.0) // #3D6D86

标签: ios xcode hex uicolor


【解决方案1】:

要解决这个问题,您可以在 viewDidLoad 中设置导航栏的半透明:

[self.navigationController.navigationBar setTranslucent:NO];

【讨论】:

    【解决方案2】:

    由于半透明UINavigationBar 上的模糊效果,您设置的颜色与屏幕上显示的颜色不完全一致。您可以将导航栏的translucent 属性设置为NO

    self.navigationController.navigationBar.translucent = NO;
    

    ...或使用this handy calculator 计算出正确的输入颜色以在屏幕上显示您想要的颜色:

    【讨论】:

    • 您几乎已经解决了,但遇到了一个问题 - 请参阅更新后的帖子
    • 你看到的那个白色的缝隙一直都在,不过之前是在导航栏的后面(有一个半透明的导航栏,内容可以在后面延伸,但不是带有不透明的导航栏)。我希望您在设置框架或约束时考虑到这一点,现在您需要重新定位图像视图。
    • 是的,就是这样!只需在情节提要中重新组织一下就可以了:)