相关疑难解决方法(0)

UISearchController iOS 11自定义

我之前使用iOS 11之前的代码来自定义UISearchController搜索栏的外观:

var searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.setDefaultSearchBar()
searchController.searchResultsUpdater = self

if #available(iOS 11.0, *) {
    navigationItem.searchController = searchController
} else {
    tableView.tableHeaderView = searchController.searchBar
}

extension UISearchBar {
    func setDefaultSearchBar() {
        self.tintColor = UIColor.blue
        self.searchBarStyle = .minimal
        self.backgroundImage = UIImage(color: UIColor.clear)
        let searchBarTextField = self.value(forKey: "searchField") as! UITextField
        searchBarTextField.textColor = UIColor.white
        searchBarTextField.tintColor = UIColor.blue
        searchBarTextField = .dark
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,更新到iOS 11并添加任何自定义的UISearchController一部分(除了键盘外观证明我的代码已被调用)无法显示.这是一个错误还是我错误地实现了它? navigationItem

编辑: 附件是运行iOS 10(第一个)和iOS 11的设备的两个屏幕截图

在此输入图像描述

在此输入图像描述

编辑2:到目前为止,关于这个问题的大部分注意力都集中在文本的颜色上UISearchBar.我在看比这更多-的背景颜色,色调的颜色,搜索指示器和清除按钮颜色等所有不能尽管是完全能够在iOS的10这么做运行iOS 11的设备上进行定制.

ios swift uisearchcontroller ios11

54
推荐指数
4
解决办法
2万
查看次数

iOS 11自定义导航栏中的搜索栏

我想在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
}
Run Code Online (Sandbox Code Playgroud)

正如您在图像中看到的那样,文本在深蓝色背景上呈灰色,看起来很难看.我希望文字和图标至少是白色的.(改变蓝色背景颜色也行不通,请看我的其他问题)

唯一有效的方法是改变闪烁光标的颜色和"取消"按钮,这是通过.tintColor属性完成的.

似乎在iOS 10及以下版本中工作的解决方案在iOS 11中似乎不再起作用,因此请仅发布您在iOS 11中工作的解决方案.谢谢.

也许我错过了iOS 11中关于这种"自动样式"的观点.任何帮助都表示赞赏.

uinavigationbar uisearchbar ios swift

45
推荐指数
1
解决办法
3万
查看次数

iOS 13设置UISearchTextField占位符颜色

如何设置iOS 13的占位符颜色UISearchTextField

我尝试了以下操作,但均未成功:

searchField.attributedPlaceholder = NSAttributedString(string: "Some placeholder", attributes: [NSAttributedString.Key.foregroundColor: UIColor.red])
Run Code Online (Sandbox Code Playgroud)

这是当前Beta中的错误,还是我错过了什么?我正在使用Xcode 11,beta 7。

xcode placeholder ios ios13

13
推荐指数
2
解决办法
1410
查看次数