博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UISearchController
阅读量:7253 次
发布时间:2019-06-29

本文共 2068 字,大约阅读时间需要 6 分钟。

hot3.png

版本:iOS 8.0

UISearchController的searBar必须设置为tableView的headerView,而且他虽然是控制器,但是不能modal,也不能push出来,他有一个属性isActive,设置他即可便捷的展示和消失。

 

//创建        var searchVC = UISearchController(searchResultsController: nil)        //这里传空即可 Pass nil if you wish to display search results in the same view that you are searching                tableView.tableHeaderView = searchVC.searchBar        //设置searchBar的样式,默认为灰色背景,虽然searbar可以设置背景但是在这里容易失效,建议通过样式设置实现        searchVC.searchBar.searchBarStyle = .minimal        searchVC.searchBar.backgroundColor = UIColor.white        //searchBar大小自适应        searchVC.searchBar.sizeToFit()        //搜索时,背景是否变暗,添加一层蒙版        searchVC.dimsBackgroundDuringPresentation = false        //表示该视图控制器的视图是否被覆盖时,视图控制器或它的子类提供了一个视图控制器        searchVC.definesPresentationContext = true        //搜索输入改变更新到哪里        searchVC.searchResultsUpdater = self                searchVC.searchBar.delegate = self        searchVC.searchBar.placeholder = "占位文字"                //控制器出现时立即变为编辑状态        searchVC.searchBar.becomeFirstResponder()                //设置搜索取消按钮        searchVC.searchBar.setShowsCancelButton(true, animated: false)        //定制取消按钮(文字、颜色、字体)        if let cancleButton = searchVC.searchBar.value(forKey: "cancelButton") as? UIButton {            cancleButton.setTitle("取消", for: .normal)            cancleButton.titleLabel?.font = Font(16)            cancleButton.setTitleColor(UIColor.red, for: .normal)        }        //展示控制器        searchVC.isActive = true//代理方法extension ViewController: UISearchResultsUpdating, UISearchBarDelegate {        //UISearchResultsUpdating    func updateSearchResults(for searchController: UISearchController) {        //输入改变,包括输入框显示状态改变    }        //UISearchBarDelegate    func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {        //取消按钮点击    }        func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {        //搜索按钮点击    }        func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {        //输入文字改变    }    }

具体数据的展示,需要根据代理事件更新搜索结果,tableView显示

转载于:https://my.oschina.net/dahuilang123/blog/842721

你可能感兴趣的文章
51CTO广东线下聚会-技术达人之夜总结篇
查看>>
Git 之——常用命令集合
查看>>
DNS服务器bind的架设笔记
查看>>
CentOS启动提示unexpected inconsistency;RUN fsck MANUALLY解决方法
查看>>
一个问题看系统数据库设计
查看>>
镜像仓库Harbor私服高可用策略分析及部署
查看>>
重写cnodejs学习整理
查看>>
从浏览器渲染的角度谈谈html标签的语义化
查看>>
文件权限及特殊权限管理SUID、SGID和Sticky
查看>>
iis 7 asp.net ajax post 请求字节过大报错问题解决办法
查看>>
高仿腾讯QQ即时通讯IM项目
查看>>
winform 中xml简单的创建和读取
查看>>
活动设计的“七宗罪”(转)
查看>>
如何在ChemDraw中输入℃温度符号
查看>>
SSH-Struts第二弹:一个Form提交两个Action
查看>>
词法分析
查看>>
Linux命令(二)
查看>>
Web登录验证之 Shiro
查看>>
LeeCode-Sort Colors
查看>>
Snort2.9.2.3 Installation on CentOS 6.2
查看>>