swift 搜索框(UISearchBar)实现简单的搜索功能
2016-05-16 16:45
549 查看
1.在storyboard里面拖入一个 Search Bar 和 一个 tableView。
2.创建ViewController,实现代理:UISearchBarDelegate,UITableViewDataSource,UITableViewDelegate.
代码实现如下:
// tableview 代理方法
extension ViewController:UITableViewDataSource,UITableViewDelegate {
}
// UISearchBar 代理方法
// 每次改变搜索内容时候调用此方法
extension ViewController: UISearchBarDelegate {
}
实现效果如下:
2.创建ViewController,实现代理:UISearchBarDelegate,UITableViewDataSource,UITableViewDelegate.
代码实现如下:
@IBOutlet weak var searchBar: UISearchBar! @IBOutlet weak var tableView: UITableView! let array = ["beijing", "shanghai","guangzhou","shenzhen" ,"changsha","wuhan","tianjing","hangzhou"] var result = [String]() override func viewDidLoad() { super.viewDidLoad() // 搜索内容为空时,显示全部内容 self.result = self.array self.searchBar.delegate = self self.tableView.delegate = self self.tableView.dataSource = self self.searchBar.placeholder = "搜索" // 注册tableviewCell self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell") }
// tableview 代理方法
extension ViewController:UITableViewDataSource,UITableViewDelegate {
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.result.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let identify: String = "cell" let cell = tableView.dequeueReusableCellWithIdentifier(identify, forIndexPath: indexPath) as UITableViewCell cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator cell.textLabel?.text = self.result[indexPath.row] return cell }
}
// UISearchBar 代理方法
// 每次改变搜索内容时候调用此方法
extension ViewController: UISearchBarDelegate {
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { print("[ViewController searchBar] searchText: \(searchText)") // 没有搜索内容时显示全部内容 if searchText == "" { self.result = self.array } else { // 匹配用户输入的前缀,不区分大小写 self.result = [] for arr in self.array { if arr.lowercaseString.hasPrefix(searchText.lowercaseString) { self.result.append(arr) } } } // 刷新tableView 数据显示 self.tableView.reloadData() } // 搜索触发事件,点击虚拟键盘上的search按钮时触发此方法 func searchBarSearchButtonClicked(searchBar: UISearchBar) { searchBar.resignFirstResponder() } // 书签按钮触发事件 func searchBarBookmarkButtonClicked(searchBar: UISearchBar) { print("搜索历史") } // 取消按钮触发事件 func searchBarCancelButtonClicked(searchBar: UISearchBar) { // 搜索内容置空 searchBar.text = "" self.result = self.array self.tableView.reloadData() }
}
实现效果如下:
相关文章推荐
- Swift实现带有缓存的播放器
- fir.im Weekly - 这是一份强大的 SwiftGuide
- fir.im Weekly - 这是一份强大的 SwiftGuide
- iOS开发——在 OC 项目中使用基于 Swift 的 CocoaPods 库
- Swift开篇001->新建Swift工程
- Swift Name Mangling - Swift语言的名字重整技术
- Swift讲解专题十一——属性
- swift-UILabel
- swift-UIButton
- 【Swift】属性
- [swift学习之十一]协议语法练习
- Swift快速集成下拉刷新和上拉加载更多
- Swift 中的引用类型与值类型
- Swift高阶函数
- 【Swift-Objc】选择排序
- 【Swift-ObjC】冒泡排序
- Swift 中关于”??”操作符
- 【Swift】上传图片-NSURLSession
- Swift 编程语言入门教程
- Swift 学习笔记(四)