UISearchBar
领券商城开发搜索功能,需要用到UISearchBar
一个搜索组件。接下里就是简单的使用案例了。
设置搜索bar位置
我们使用SnapKit 来控制view的位置。
//初始化
private lazy var searchBox: UISearchBar = {
let searchView = UISearchBar()
return searchView
}()
布局位置:安全区的top的位置
//搜索
view.addSubview(searchBox)
searchBox.delegate = self
//约束搜索
searchBox.snp.makeConstraints { (mm) in
mm.left.equalToSuperview()
mm.right.equalToSuperview()
mm.top.equalTo(view.safeAreaLayoutGuide.snp.top)
mm.height.equalTo(60)
}
设置搜索代{过}{滤}理
实现UISearchBarDelegate
searchBox.delegate = self
extension FindViewController{
//文字变更
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
//搜索文字触发回调
print("[ViewController searchBar] 输入 searchText: \(searchText)")
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
print("键盘上面点击搜索 \(searchBar.text)")
}
}
响应2个逻辑,第一个就是文字的变化,当文字空的时候,我们需要清空搜索结果,显示搜索历史。
当点击键盘的搜索按钮的时候,我们需要搜索对应的商品,然后更新tableview。
给出完整的代码。
//
// FindViewController.swift
// uitable
//
// Created by Alice on 2021/3/8.
//
import UIKit
import SnapKit
class FindViewController: BaseViewController, UISearchBarDelegate{
private lazy var lab: UILabel = {
let label = UILabel()
return label
}()
private lazy var searchBox: UISearchBar = {
let searchView = UISearchBar()
return searchView
}()
override func viewDidLoad() {
super.viewDidLoad()
//标题
title = "搜索"
view.addSubview(lab)
//搜索
view.addSubview(searchBox)
lab.text = "find"
lab.snp.makeConstraints { (make) in
make.center.equalToSuperview()
}
searchBox.delegate = self
//约束搜索
searchBox.snp.makeConstraints { (mm) in
mm.left.equalToSuperview()
mm.right.equalToSuperview()
mm.top.equalTo(view.safeAreaLayoutGuide.snp.top)
mm.height.equalTo(60)
}
}
}
extension FindViewController{
//文字变更
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
//搜索文字触发回调
print("[ViewController searchBar] 输入 searchText: \(searchText)")
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
print("键盘上面点击搜索 \(searchBar.text)")
}
}
接下里,就是根据搜索框的内容,进行商品搜索了。
最近有点事情,更新慢了。
代码地址:
https://github.com/cat13954/IOSUiTableViewSample
个人博客地址
https://www.bbsios.xyz
|