为啥点击时我的 UISearchBar 会缩小?
Posted
技术标签:
【中文标题】为啥点击时我的 UISearchBar 会缩小?【英文标题】:Why does my UISearchBar shrink when tapped?为什么点击时我的 UISearchBar 会缩小? 【发布时间】:2020-01-11 04:07:09 【问题描述】:当我加载我的代码时,UISearchBar 会正常显示。但是,在我点击搜索字段后,搜索栏会缩小并垂直下降。代码:
class MainViewController: UIViewController, UISearchBarDelegate
var searchBarController: UISearchController?
var tableViewController: UITableViewController?
var searchBar: UISearchBar?
override func viewDidLoad()
super.viewDidLoad()
self.view.backgroundColor = .blue
let tableViewController = UITableViewController(style: .plain)
let searchBarController = UISearchController(searchResultsController: tableViewController)
self.searchBarController = searchBarController
self.tableViewController = tableViewController
self.searchBar = self.searchBarController?.searchBar
self.searchBar?.frame = CGRect(x: 0, y: 50, width: self.view.frame.size.width, height: 75)
self.searchBar?.searchBarStyle = .prominent
self.view.addSubview(self.searchBar!)
这是点击前后的视觉效果:
【问题讨论】:
删除 sizetoFit() 并尝试 @PratikPrajapati 抱歉打算从我的代码中删除它。我已经删除了它仍然无法使用。 为什么你使用 SearchBarCobtroller 而不是 UISearchBar.init()? @PratikPrajapati 我使用 SearchBarController 是因为我将在稍后的过程中使用它来与 tableviewcontroller 协调结果(以及任何其他 searchBarController 功能)。但是,当我删除 SearchBarController 的使用并单独初始化 UISearchBar 并将其添加到视图时,搜索栏不再缩小。为什么 SearchBarController 会这样影响 UI? 这是唯一的屏幕?你正在使用 UiSearchBarController? 【参考方案1】:UIkit 将调整 layoutSubviews()
上 searchcontroller 视图的大小,这将重置您的框架。
如果您想独立控制搜索栏的大小,我建议您使用searchbar.translatesAutoresizingMaskIntoConstraints = false
和/或在viewDidLayoutSubview()
中使用searchbar.frame = ...
调整搜索栏的大小
【讨论】:
以上是关于为啥点击时我的 UISearchBar 会缩小?的主要内容,如果未能解决你的问题,请参考以下文章
React Native 为啥每次点击 textInput 时我的键盘都会立即消失?
为啥我打开 access 数据库 (.accdb) 时我的 winform 会调整大小,我该如何解决?