swift - 更改 UISearchBar 的文本字段字体也会更改它的高度
问题描述
我正在更改 UISearchBar 的 UITextField 字体大小:
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).defaultTextAttributes = [.font: UIFont.systemFont(ofSize: 17)]
或者
searchBar.searchTextField.font = .systemFont(ofSize: 17)
这是与默认值相同的字体大小值。但是 UISearchBar 也会改变它的高度。看起来它比默认高度值大一点。我该如何解决?
默认 UISearchBar 高度: 字体大小更改后(注意实际字体大小与上图相同):
更新:我有一个带有 UITabBarViewController 的故事板。然后我有两个 UIViewControllers 连接到 UITabBarViewController。其中一个是空的,另一个包含 UINavigationController 和连接的示例 VIewController,即 UITableViewController。以下是测试 ViewController 的示例代码:
import UIKit
class ViewController: UITableViewController {
private lazy var searchController: UISearchController = {
let searchController = UISearchController(searchResultsController: nil)
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.autocapitalizationType = .none
searchController.searchBar.placeholder = "Search"
searchController.searchBar.barStyle = .black
searchController.searchBar.tintColor = .black
searchController.searchBar.keyboardAppearance = .light
return searchController
}()
override func viewDidLoad() {
super.viewDidLoad()
title = "TEST"
navigationItem.searchController = searchController
navigationItem.searchController?.searchBar.searchTextField.font = .systemFont(ofSize: 17)
definesPresentationContext = true
}
}