Не можете изменить цвет UISearchBar? - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь изменить background-, tint- и barTintColor моего searchBar ... Я пробовал так много разных способов, но ни один из них не сработал.Я даже попытался установить желаемый желтый цвет GlobalTintColor.

Текущий код:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    //UISearchController
    searchController.searchBar.delegate = self
    self.searchController.delegate = self
    searchController.searchResultsUpdater = self
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.sizeToFit()
    searchController.searchBar.barTintColor = UIColor(red:1.00, green:0.96, blue:0.02, alpha:1.0)
    searchController.searchBar.tintColor = UIColor(red:1.00, green:0.96, blue:0.02, alpha:1.0)
    searchController.searchBar.backgroundColor = UIColor(red:0.36, green:0.39, blue:0.40, alpha:1.0)
    searchController.searchBar.placeholder = "Search for Users"

    if #available(iOS 9.1, *) {
        searchController.obscuresBackgroundDuringPresentation = false
    } else {
        // Fallback on earlier versions
    }

    if #available(iOS 11.0, *) {
        navigationItem.searchController = searchController
    } else {
        // Fallback on earlier versions
    }

    if #available(iOS 11.0, *) {
        self.navigationItem.searchController = self.searchController
        self.navigationItem.hidesSearchBarWhenScrolling = false
    } else {
        tableView.tableHeaderView = searchController.searchBar
    }
    self.navigationItem.titleView?.tintColor = UIColor.yellow
}

У меня что-то не так?

1 Ответ

0 голосов
/ 27 января 2019

Сделайте так:

func SearchBarAppearence() {
    searchController.searchBar.tintColor = .black
    searchController.searchBar.setValue("text of button", forKey:"_cancelButtonText")
    UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).defaultTextAttributes = [NSAttributedStringKey.foregroundColor.rawValue: UIColor.white]
    UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).attributedPlaceholder = NSAttributedString(string: "text of searchbar", attributes: [NSAttributedStringKey.foregroundColor: UIColor.white])
    UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).defaultTextAttributes = [NSAttributedStringKey.font.rawValue: UIFont(name: IRAN_SANS_MOBILE_FONT, size: 14)!]
    UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes([NSAttributedStringKey.font : UIFont(name: IRAN_SANS_MOBILE_FONT, size: 14)!], for: .normal)
}
...