UISearchController:搜索栏最初太宽

Joa*_*rks 7 uisearchbar ios swift

我有一个问题,以UISearchBar编程方式添加到一个UIView(在一个TabBarController的子视图之一):

首次加载屏幕时,搜索栏太宽而无法完全适合视图.但是,当您点击内部然后点击Cancel按钮时,搜索栏会调整大小,以便它适合UIView.

我在GitHub上传了一个示例项目 - 可以在BlueViewController类的第二个选项卡上观察到不正确的行为.我已经尝试了很多东西,你可以在代码中看到并搜索最流行的StackOverflow答案,但到目前为止他们都没有解决这个问题.

这是该项目的链接:https: //github.com/asia-t/tabbartest

如果有人可以对可能发生的事情有所了解,那就太好了.

在此输入图像描述

And*_*tta 8

您可以实现以下方法来修复搜索栏的框架:

override func viewDidLayoutSubviews() {
    var searchBarFrame = searchController.searchBar.frame
    searchBarFrame.size.width = vanillaSearchBar.frame.size.width
    searchController.searchBar.frame = searchBarFrame
}
Run Code Online (Sandbox Code Playgroud)