Ios 如何修复聚焦时调整UISearchController搜索栏大小的问题?

Ios 如何修复聚焦时调整UISearchController搜索栏大小的问题?,ios,swift,xcode,uisearchcontroller,visual-glitch,Ios,Swift,Xcode,Uisearchcontroller,Visual Glitch,我正在尝试实现一个UISearchController,它在一个小的弹出屏幕中显示UITableView,如下所示: . 但是,当搜索栏聚焦时,它会向上移动并变宽,如下所示: . 我找到了另一篇关于这个问题的帖子,但公认的解决方案似乎并没有解决这个问题。 作为参考,我使用的是全屏显示的模式序列。有一个内容视图,其中tableView和titleLabel是子视图。以下是弹出视图控制器的相关代码 @IBOutlet weak var tableView: UITableView! @IBOutle

我正在尝试实现一个UISearchController,它在一个小的弹出屏幕中显示UITableView,如下所示: .
但是,当搜索栏聚焦时,它会向上移动并变宽,如下所示: .
我找到了另一篇关于这个问题的帖子,但公认的解决方案似乎并没有解决这个问题。
作为参考,我使用的是全屏显示的模式序列。有一个内容视图,其中tableView和titleLabel是子视图。以下是弹出视图控制器的相关代码

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var titleLabel: UILabel!

var items = ["Test", "oewrghp", "wopqet", "vbsjadsf", "rweoghp", "bmwehth", "pqeojnh"]
var filteredItems = [String]()
let searchController = UISearchController(searchResultsController: nil)

override func viewDidLoad() {
    super.viewDidLoad()

    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissTapGesture(gesture:)))
    view.addGestureRecognizer(tapGesture)
    view.backgroundColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 0.3)

    searchController.searchResultsUpdater = self
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.searchBar.barTintColor = .white
    searchController.searchBar.backgroundColor = .clear
    searchController.searchBar.delegate = self
    searchController.obscuresBackgroundDuringPresentation = false

    titleLabel.text = "Search"

    tableView.tableHeaderView = searchController.searchBar
    tableView.delegate = self
    tableView.dataSource = self
    tableView.reloadData()
    tableView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:))))

    // Do any additional setup after loading the view.
}

使用
UISearchBar
而不是
UISearchController

比如:

let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 44))

希望这对别人有帮助

您是否尝试过
self.definesPresentationContext=true
?是的,它没有解决问题。从iOS 11开始,您应该使用
self.navigationItem.searchController=searchController
而不是
tableView.tableHeaderView=searchController.searchBar
,了解详细信息。