ios - UISearchBar 高度自动大小更改 Swift
问题描述
这是我正在尝试做的事情:
截图来自Iphone:
我正在开发一个简单的应用程序并以编程方式添加 uisearchbar 但我真的很困惑为什么要像第二张图片一样从顶部显示额外的空间。但是当我写的时候,uisearchbar 会像第一张图片一样改变我们的位置。
这是我的代码:
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
self.searchController.obscuresBackgroundDuringPresentation = false
self.searchController.searchBar.placeholder = "Search"
self.searchController.searchBar.barStyle = .black
self.searchController.searchBar.delegate = self
self.definesPresentationContext = true
if #available(iOS 11.0, *) {
navigationItem.searchController = searchController
} else {
// Fallback on earlier versions
navigationItem.titleView = searchController.searchBar
}
}
extension starControl: UISearchBarDelegate{
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar)
{
//Show Cancel
searchBar.setShowsCancelButton(true, animated: true)
searchBar.tintColor = .black
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
{
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar)
{
searchBar.setShowsCancelButton(false, animated: true)
searchBar.resignFirstResponder()
guard let term = searchBar.text , term.isEmpty == false else {
return
}
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar)
{
searchBar.setShowsCancelButton(false, animated: true)
searchBar.text = String()
searchBar.resignFirstResponder()
}
}
有人可以向我解释如何解决这个问题,我已经尝试解决这个问题但还没有结果。
任何帮助将不胜感激。
提前致谢。
解决方案
这是最新的swift4.2代码和搜索栏的最新功能,只需将此功能放入控制器并从 viewDidLoad 调用。
func setupNavBar() {
self.title = "Controller title"
self.navigationController?.navigationBar.prefersLargeTitles = false
self.navigationController?.navigationItem.largeTitleDisplayMode = .always
let searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.delegate = self
navigationItem.searchController = searchController
}
推荐阅读
- mysql - MYSQL - 查询从前 N 个不同元素中提取所有列
- c++ - 使用 std 或 boost 库的 C++ 中 Qtimer 的等价物是什么?
- c# - 如何通过公共列合并两个不同类型的列表?
- android - 直接回复消息的 Android O 通知
- android - 失去 layout_margin 的子视图
- python - 如何让pytorch中的类使用GPU
- sql-server - 根据区域,获取顶级客户及其总销售额百分比
- magento - Magento 2:1 异常:异常 #0 (ReflectionException)
- r - 使用闪亮的 webshot 渲染图像时避免重叠
- wordpress - WordPress 漂亮的永久链接