首页 > 解决方案 > 更改 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
    }
}

标签: swiftuikituitextfielduisearchbar

解决方案


推荐阅读