UISearchController 中的搜索图标为截止
Posted
技术标签:
【中文标题】UISearchController 中的搜索图标为截止【英文标题】:Search Icon in UISearchController is Cutoff 【发布时间】:2015-11-20 17:17:30 【问题描述】:当我将 UISearchController 搜索栏中的占位符文本更新为比搜索栏更宽的内容时,搜索图标会发生这种情况:
我通过在viewDidLoad
中调用以下方法添加了UISearchController和搜索栏:
private func initSearchController()
searchResultsController = UITableViewController()
searchResultsController.tableView.backgroundColor = UIColor(red: 51/255, green: 51/255, blue: 51/255, alpha: 1.0)
searchController = UISearchController(searchResultsController: searchResultsController)
searchResultsController.tableView.rowHeight = 50
let textFieldInsideSearchBar = searchController.searchBar.valueForKey("searchField") as? UITextField
textFieldInsideSearchBar?.textColor = UIColor.whiteColor()
searchController.searchBar.sizeToFit()
searchController.searchBar.placeholder = "SOL Southwest Kitchen & Tequila Bar"
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = true
searchController.searchBar.searchBarStyle = .Minimal
navigationItem.titleView = searchController.searchBar
definesPresentationContext = true
searchController.searchResultsUpdater = self
searchResultsController.tableView.dataSource = self
searchResultsController.tableView.delegate = self
searchController.searchBar.delegate = self
什么给了?另外,无论如何要消除后退按钮和搜索栏之间的奇怪间隙?如果有帮助,这个视图是导航控制器中的第二个视图控制器。使用 ios9 和 Swift 2.1。谢谢!
【问题讨论】:
不幸的是,移动放大镜为占位符文本腾出空间是 uisearchbar 的标准行为,即使这意味着放大镜被剪裁了。点击搜索栏将使放大镜再次可见。避免这种情况的最简单方法是使用较短的占位符字符串。无论如何,您的字符串将被截断。占位符文本是描述性的(例如搜索、搜索位置、搜索联系人、搜索食物和饮料等) 如果您将搜索栏移到导航栏下方,它看起来会更好,并且符合 Apple 的指南,例如看看邮件应用他们是如何放置搜索栏的。 是的,我决定将其改回适合的默认占位符文本。 【参考方案1】:这似乎是不可能的,除非使用按钮、图像和文本字段创建自定义搜索栏。
【讨论】:
以上是关于UISearchController 中的搜索图标为截止的主要内容,如果未能解决你的问题,请参考以下文章
在 NavigationBar 中打开 UISearchController 时,整个应用程序冻结
移除 UISearchController 后,NavigationItem 不会恢复到原来的大小
ios UIsearchcontroller 中的搜索栏消失
使用 UISearchController 显示搜索结果和键盘覆盖 UITableView 中的底部行/部分