iOS 10,UIToolbar背景颜色不会改变

时间:2016-08-23 17:10:37

标签: ios swift uitableview uitoolbar ios10

我有一个应用程序,自iOS 8以来一直存在。它的工作方式是你有一个UITableView并点击单元格来产生一个分数,这取决于底部的UI工具栏得分使用此方法更改颜色:

func updateToolbarAndLabel(score: Int) {

    if(score <= -1) {
        self.toolbar.backgroundColor = UIColor.greenColor()
    } else if(score <= 0) {
        self.toolbar.backgroundColor = .None
    } else if(score <= 9) {
        self.toolbar.backgroundColor = UIColor.greenColor()
    } else if(score <= 29) {
       self.toolbar.backgroundColor = UIColor.yellowColor()
    } else if(score >= 30) {
        self.toolbar.backgroundColor = UIColor.redColor()
    }
    if (score <= 0) {
        self.scoreshow.text = "0"
    } else {
        self.scoreshow.text = (score as NSNumber).stringValue }
}

然后每当用这个点击表视图时调用它:

func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath)     {

事实上,自从我构建应用程序以来它始终有效,但在iOS 10上,它并没有。简单地把颜色改变了......

任何帮助将不胜感激

7 个答案:

答案 0 :(得分:10)

我能够解决它,它改为:BarTintColor,发现它自己在苹果文档中找不到任何东西

像这样使用:self.toolbar.barTintColor

编辑:现在有一些人在GM发布文档中提到它,请参阅下面的回答

答案 1 :(得分:3)

使用&&不会产生我想要的正确颜色,但以下方法适用于iOS 11 / Swift 4。

首先,创建一个任何大小的图像,其颜色应该是您想要的条形。

之后,请使用以下扩展名:

someBoolean

您创建的纯色图像将作为工具栏的背景应用,并且应与您想要的颜色完美匹配。

在这个例子中,我使用了带紫色的1x1图像: enter image description here

答案 2 :(得分:2)

我设法使用此代码在IOS 10和Swift 3上完成了这项工作:

let dummyToolbar = UIToolbar()
dummyToolbar.barTintColor = .lightGray
dummyToolbar.sizeToFit() // without this line it doesn't work

答案 3 :(得分:1)

这可能与此处概述的UIKit更改有关:https://beta.applebetas.tk/notes/ios/10.0/beta_gm.pdf

我也面临这个问题,你有没有设法解决它?

答案 4 :(得分:1)

对于iOS 11和12 Swift 4,我可以使用以下代码进行操作:

self.navigationController?.toolbar.barTintColor = UIColor.init(white: 0.9, alpha: 1)

答案 5 :(得分:0)

这在适用于IOS12和Swift 4的xCode 11中有效:

            self.navigationController?.toolbar.barTintColor = UIColor.black

答案 6 :(得分:0)

更改背景颜色:

toolBar.barTintColor = UIColor.musalaDarkBlueColor

更改按钮颜色:

toolBar.tintColor = UIColor.white