web-dev-qa-db-ja.com

UISearchBarのフォントサイズと色を変更するにはどうすればよいですか?

UISearchBarのフォントサイズと色を変更する方法を数時間グーグルで検索しましたが、それに関連するドキュメントはありません。

これは私がこれまでにSwift 4:

 searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: view.frame.width - (menuImage.frame.width + iconImage.frame.width + 55), height: 30))
 searchBar.placeholder = "SEARCH BAR"
 searchBar.tintColor = UIColor.gray
 searchBar.delegate = self
 searchBar.font = [UIFont fontWithName:@"Oswald" size:11];

しかし、それは私にエラーを与えました。

UISearchBarのフォントサイズと色を変更する方法を教えてください。

助けてください!!!

5
Chhorn Soro

外観プロキシを使用して、UISearchBarテキストとプレースホルダーのスタイルを設定できます。

プレースホルダーの変更:

let placeholderAppearance = UILabel.appearance(whenContainedInInstancesOf: [UISearchBar.self])
placeholderAppearance.font = UIFont(name: "Baskerville", size: 14)
placeholderAppearance.textColor = .red

検索テキストの変更:

let searchTextAppearance = UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self])
searchTextAppearance.font = UIFont(name: "Baskerville", size: 14)
searchTextAppearance.textColor = .green
2
joern
searchBarOutlet.setScopeBarButtonTitleTextAttributes([NSForegroundColorAttributeName: UIColor.whiteColor()], forState:UIControlState.Normal)
1
Mukul Sharma

IOS 13以降では、UISearchBarにはsearchTextFieldというプロパティがあります。ただし、以前は、このプロパティを使用できません。

したがって、UISearchBarを拡張できます。

extension UISearchBar {
    var textField: UITextField? {
        if #available(iOS 13.0, *) {
            return self.searchTextField
        } else {
            // Fallback on earlier versions
            for view in (self.subviews[0]).subviews {
                if let textField = view as? UITextField {
                    return textField
                }
            }
        }
        return nil
    }
}

そして使用:

searchBar.textField?.font = UIFont.systemFont(ofSize: 12)
0
Anh Tuan