30-Swift之UISearchBar

一、UISearchBar 的介绍和用途

搜索框 UISearchBar
搜索框广泛应用于App中,在很多商品中能够使你快速找到你想要的商品,就是搜索框的功能。

二、UISearchBar 的属性和方法介绍

1、初始化&设置大小&渲染

/**
 搜索框的初始化
 */
let NetWorkSearchBar = UISearchBar.init()
/**
 设置大小
 注意:无论我们设置多少,都不会影响显示的样式。但可以改变背景高度。
 */
NetWorkSearchBar.frame = CGRect.init(x: 20, y: 30, width: 200, height: 40)
/**
 渲染
 */
self.view.addSubview(NetWorkSearchBar)

2、搜索框的样式

/**
 设置样式
 black:  搜索框整体都是黑色
 blackTranslucent :搜索框整体都是黑色 ,等同于 black
 default : 默认,背景为灰色,搜索框为白色
 blackOpaque : 搜索框整体都是黑色 ,等同于 black
 */
NetWorkSearchBar.barStyle = .blackOpaque

3、搜索框的代理

/**
 搜索框的代理事件
 */
NetWorkSearchBar.delegate = self


代理方法

// TODO: 搜索编辑结束时候调用
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
print("搜索编辑结束")
}
// TODO: 搜索清楚按钮被点击的时候调用
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
print("搜索清楚按钮被点击了")
}
// TODO : 搜索开始编辑的时候调用该函数
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
print("用户开始编辑")
}
// TODO : 收索框标志按钮被点击调用该函数
func searchBarBookmarkButtonClicked(_ searchBar: UISearchBar) {
print("标志按钮被点击")
}
// TODO: 搜索按钮被点击的时候调用
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
print("搜索按钮被点击了")
}

//TODO :搜索记录列表被点击
func searchBarResultsListButtonClicked(_ searchBar: UISearchBar) {
print("搜搜记录列表被点击")
}
// TODO : 控制是否允许用户搜索编辑结束
func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
return true
}
// TODO : 控制是否允许用户搜索编辑开始
func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
return true
}
// TODO: 这能够获取搜索框输入的文字变化
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
print(searchText)
}
//TODO : 这搜索按钮分类栏的选择时,调用该函数
func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) {

}
// TODO:控制搜索框文字的输入
func searchBar(_ searchBar: UISearchBar, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
return true
}

4、设置搜索文字& 悬浮提示& 默认提示

/**
 设置文字
 */
NetWorkSearchBar.text = "搜一搜"
/**
 搜索框上的悬浮标志
 */
NetWorkSearchBar.prompt = "我是谁"
/**
 搜索框提示文字
 */
NetWorkSearchBar.placeholder = "来一来"

6、是否要显示标志按钮& 搜索历史按钮& 取消搜索按钮 & 分类按钮

/**
 是否显示标志按钮
 */
NetWorkSearchBar.showsBookmarkButton = true;
/**
 搜索历史下拉列表按钮
 */
NetWorkSearchBar.showsSearchResultsButton = true
/**
 是否显示取消按钮
 */
NetWorkSearchBar.showsCancelButton = true
/**
是否显示分类标签
*/
NetWorkSearchBar.showsScopeBar = true

7、设置背景色& 透明度

/**
 光标是红色和取消按钮是红色
 */
NetWorkSearchBar.tintColor = UIColor.red
/**
 背景是蓝色
 */
NetWorkSearchBar.barTintColor = UIColor.blue

/**
 控制收索框的透明度
 */
NetWorkSearchBar.isTranslucent = true

8、设置搜索分类的文字& 图片&获取某一状态的图片

/**
 设置搜索分类下的文字
 */
NetWorkSearchBar.scopeButtonTitles = ["水果","旅游"]
/* 设置分类按钮选中第几个*/
NetWorkSearchBar.selectedScopeButtonIndex = 1
/* 是否显示分类标签*/
NetWorkSearchBar.showsScopeBar = true
/* 设置分类标签的背景图片*/
NetWorkSearchBar.scopeBarBackgroundImage = UIImage.init(named: "test.png")
/**
 设置搜索分类某一状态的背景图片
 */
NetWorkSearchBar.setScopeBarButtonBackgroundImage(UIImage.init(named: "test.png"), for: .selected)
/* 获取分类标签某一状态的背景图片*/
let bIamge = NetWorkSearchBar.scopeBarButtonBackgroundImage(for:.selected)
print(bIamge!)
/**
 修改分类按钮的文字和样式
 */
NetWorkSearchBar.setScopeBarButtonTitleTextAttributes([NSFontAttributeName:UIFont.systemFont(ofSize: 10),NSForegroundColorAttributeName:UIColor.red], for: .selected)

9、设置搜索标签按某个状态的图片& 获取图片

/**
 设置搜索控件上各个标签按钮的图片
 search         收索按钮
 clear          清楚按钮
 bookmark       书页按钮
 resultsList    搜索历史按钮
 */
NetWorkSearchBar.setImage(UIImage.init(named: "test.png"), for: UISearchBarIcon.search, state: UIControlState.selected)
/* 获取某个按钮某一状态下的图片*/
let xImage = NetWorkSearchBar.image(for: .search, state: .selected)
print(xImage!)

10、设置搜索框的背景图片& 获取背景图片

/**
 设置搜索分类某一状态的背景图片
 */
NetWorkSearchBar.setScopeBarButtonBackgroundImage(UIImage.init(named: "test.png"), for: .selected)
/* 获取分类标签某一状态的背景图片*/
let bIamge = NetWorkSearchBar.scopeBarButtonBackgroundImage(for:.selected)
print(bIamge!)

你可能感兴趣的:(30-Swift之UISearchBar)