UISearchBar.appearance()无法首次启动?

时间:2016-05-09 03:55:25

标签: ios swift uisearchbar placeholder uiappearance

在我的AppDelegate中,我已经在我的应用程序中定制了我的UISearchBars(我有几个),所以它们会匹配应用程序颜色等。 (应用程序颜色是一种青色)。我的代码如下:

// Set appearance of UISearchBar for the app appearance
        UISearchBar.appearance().tintColor = UIColor.whiteColor()

        UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).tintColor = appColor
        UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).font = UIFont.init(name: "AvenirNext-Medium", size: 17)
        UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).textColor = UIColor.whiteColor()
        UISearchBar.appearance().searchBarStyle = UISearchBarStyle .Minimal
        UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).attributedPlaceholder = NSAttributedString.init(string: "Search...", attributes: [NSForegroundColorAttributeName : UIColor.whiteColor()])
        UISearchBar.appearance().setImage(UIImage(named: "searchIcon"), forSearchBarIcon: UISearchBarIcon.Search, state: UIControlState .Normal)

毕竟,这是第一次发布时发生的事情:

first launch

即使我在AppDelegate中将其设置为白色,文本仍然是灰色的。

当我点击搜索栏时:

clicked

当我点击取消时:

after cancel hit

这应该是它的样子。我不确定为什么在用户交互之前文本是灰色的。有没有人有解决方案?

1 个答案:

答案 0 :(得分:2)

你可以尝试

UILabel.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).textColor = UIColor.whiteColor()

请查看是否有效