【问题标题】:Changing Tab Bar Color (Swift)更改标签栏颜色 (Swift)
【发布时间】:2014-12-23 02:47:56
【问题描述】:

我正在尝试使用 swift 在 XCode 中的视图控制器中更改标签栏颜色。我有一个与 RGB 值匹配的十六进制,我正在尝试在此代码中设置它。 (这不起作用)

let color = UIColor(red: 41, green: 40, blue: 39, alpha: 1.0)
UITabBar.appearance().barTintColor = color

但是这段代码可以:

UITabBar.appearance().barTintColor = UIColor.whiteColor()

谁能解释为什么这不起作用,以及我能做些什么来解决它?

【问题讨论】:

    标签: swift tabview


    【解决方案1】:

    iOS 10 Swift 3.0

    如果您不介意使用 swift 框架,那么我们 UINeraida 将 Tabbar 背景更改为 UIColorHexColorUIImage 并更改完整的前景色。

    对于 UITabBar

    neraida.tabbar.background.color.uiColor(UIColor.orange, isTranslucent: false, viewController: self)
    
    //change tab bar tint color //(select,unselect)
    
    neraida.tabbar.foreground.color.uiColor((UIColor.white,UIColor.green), viewController: self)
    
    //set Background Image for tab bar
    
    neraida.tabbar.background.image("background", isTranslucent: false, viewController: self)
    

    【讨论】:

      【解决方案2】:

      要使用 RGB 值,只需将它们除以 255.0。这将产生一个介于 0 和 1 之间的浮点值。

      let color = UIColor(red: 41.0/255.0, green: 40.0/255.0, blue: 39.0/255.0, alpha: 1.0)
      

      【讨论】:

        【解决方案3】:

        它不起作用,因为您的所有 RGB 分量都大于 1,这是每个通道的最大可用值。您可能将颜色通道视为字节,但这不会扩展到不同的颜色位深度。 (例如,在 iOS 的早期版本中,通常渲染为 RGB565,而不是 RGBA8888。您可能会期望 Apple 在不久的将来使 16 位精度的屏幕成为标准。)使用从 0 到 1 的浮点数, 将位深度与颜色表示分离。

        https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UIColor_Class/index.html#//apple_ref/occ/instm/UIColor/initWithRed:green:blue:alpha:

        【讨论】:

          猜你喜欢
          • 2015-07-11
          • 1970-01-01
          • 2022-01-26
          • 2013-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-20
          • 2013-11-17
          相关资源
          最近更新 更多