我想在iOS 11搜索栏中嵌入导航栏时更改文本和图标的颜色 . 所以占位符文本,搜索文本和搜索图标 .
if #available(iOS 11.0, *) {
navigationController?.navigationBar.prefersLargeTitles = false
let searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
searchController.searchBar.placeholder = "Suchen"
searchController.searchBar.tintColor = .white
}
正如您在图像中看到的那样,文本在深蓝色背景上呈灰色,看起来很难看 . 我希望文字和图标至少是白色的 . (改变蓝色背景色也行不通,见my other question)
唯一有效的方法是改变闪烁光标的颜色和“取消”按钮,这是通过.tintColor属性完成的 .
似乎在iOS 10及以下版本中工作的解决方案在iOS 11中似乎不再起作用,因此请仅发布您在iOS 11中工作的解决方案 . 谢谢 .
也许我错过了iOS 11中关于这种“自动样式”的观点 . 任何帮助都表示赞赏 .
5 回答
我刚刚发现了如何设置其余部分:(在布兰登的帮助下,谢谢!)
“取消”文字:
搜索图标:
清晰的图标:
搜索文字:
感谢@Brandon的帮助!
占位符:
白色背景:
取自here .
设置搜索文本颜色
设置搜索占位符颜色
放
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).defaultTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
和
UISearchBar.appearance().tintColor = UIColor.white
在AppDelegate
.或者,将它们放在
[UIViewController viewDidLoad:]
中除了Darko 's answer. In my case I need to get pure white search textfield color. Also I need a custom borderLine and cornerRadius. So if I just set background color to white, set custom corner radius and custom border line I'之外,还有类似的东西 .
问题是搜索栏有一些子视图,我刚删除它们 . 这是我的代码:
现在我点击时禁用了灰色突出显示 .
此代码更改文本字段的背景颜色
Swift 4
编辑:青色的UISearchBar样本