ios - UISearchBar 在 NavigationBar 宽度

标签 ios swift uitableview

我想在我的导航栏中有一个 UISearchbar - 就像我在这里所做的那样:

enter image description here 当 SearchBar 获得焦点时,我将删除左侧按钮:

self.navigationItem.leftBarButtonItems = []

并尝试使 UISearchBar 获取屏幕的整个宽度(使用取消按钮)

    searchBar.sizeToFit()
    searchBar.showsCancelButton = true

但是我的 UISearchBar 太宽了,在这个屏幕中看起来像这样:

enter image description here

但这是为什么呢?我想要得到以下结果:

用户点击 SeachBar,我将淡入 UITableView 来显示结果 - 当用户按下取消按钮时,UITableView 淡出,我将添加再次点击“类别”左侧按钮。

这是解决该问题的方法吗?或者我可以不使用 sizeToFit() 方法吗?

最佳答案

您似乎将搜索栏放置为 rightBarButtonItem,并且该位置有右边距。您的 searchBar 正试图扩展到屏幕的整个宽度,因此它变得太宽了。

我使用了一个搜索 Controller 并实现了 didPresentSearchController 并在那里调整了它的大小。

关于ios - UISearchBar 在 NavigationBar 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072735/

相关文章:

objective-c - 废弃内存、泄漏、导航 Controller

ios - 45 分钟后计时器不会停止

objective-c - Objective-C:触摸绘图不透明度

swift - 自动删除 UITableView 中的行 : Swift3

ios - 如何快速循环遍历 TableView 中的多个部分

ios - Swift:彩虹色环

swift - XCTest:在所有平台(Xcode、SPM Mac/Linux)上不使用 Bundle 从磁盘加载文件

ios - iOS 14.3 上的 UICollectionViewCompositionalLayout 错误

ios - 自定义 UITableViewCell 中的 UIImageview 未正确显示

ios - 无法为 UIBarButtonItem 设置图像