iOS UISearchBar使用全解 搜索条使用大全 swift

提示:一般商业 app 都不用系统的 UISearchController 的,最多用一个 searchBar,然后加到导航栏上,甚至都是用 textfield 自定义的搜索框。点击 searchBar 后,present 一个界面,animated 设为 false,新界面里有一个输入框 becomeFirstResponder,根据业务调整整个搜索界面。

 

import UIKit 

class ViewController:UIViewController,UISearchBarDelegate {

    var search:UISearchBar!

    overridefunc viewDidLoad() {

        super.viewDidLoad()

        search =UISearchBar(frame:CGRect(x: 0, y:120, width:view.bounds.width, height:50))

        

//        search.placeholder = "Please search here"   //默认半透明显示文字

          search.prompt ="backGround"               //顶部居中文字做提示

          search.barStyle = .black                   //黑色搜索框

        

//      关于tintColor和barTintColor请自行百度

          search.tintColor =UIColor.blue        //渲染颜色,包括加的控价,比如下面的scopeBar

//        search.barTintColor = UIColor.red      //背景色

//        search.isTranslucent = true                 //半透明

//        search.autocapitalizationType  = .sentences // 首字母大写

//        search.autocorrectionType = .yes            // 自动纠错

          search.keyboardType = .emailAddress         //键盘类型

          search.keyboardAppearance = .dark           //键盘色

//        search.keyCommands

          search.showsCancelButton =true             //cancel按钮

//        search.showsBookmarkButton = true           //书本按钮

        

        search.showsScopeBar =true                   //显示搜索栏下方选择栏

        search.scopeButtonTitles = ["1234","1231234"//搜索栏题目

        search.selectedScopeButtonIndex =1           //初始scope是第几个的,默认第0

        

//        search.showsSearchResultsButton = true    //下拉箭头

//        search.isSearchResultsButtonSelected      //是否选中了下拉箭头

       

          search.delegate =self 

          view.addSubview(search)

    }

//取消第一响应:如果点了别的地方,收键盘,注意 tableView 不能用这个收键盘

    overridefunc touchesBegan(_ touches:Set<UITouch>, with event:UIEvent?) {

        search.resignFirstResponder()      

    }

 

    //searchBar回调函数使用方法大全

    

//    1. 选择的scope发生变化

    func searchBar(_ searchBar:UISearchBar, selectedScopeButtonIndexDidChange selectedScope:Int) {

//        print(selectedScope)

    }

    

//    2. 实时监测输入的文字

    func searchBar(_ searchBar:UISearchBar, textDidChange searchText:String) {

//        print(searchText)

    }

    

//    3. 点击了书签或其他东西的响应

    func searchBarBookmarkButtonClicked(_ searchBar:UISearchBar) {

        

    }

// 剩下的看函数名:

    func searchBarCancelButtonClicked(_ searchBar:UISearchBar) {

        

    }

    func searchBarSearchButtonClicked(_ searchBar:UISearchBar) {

        

    }

    func searchBarResultsListButtonClicked(_ searchBar:UISearchBar) {

        

    }

 

//    4. 是否开始编辑?返回值false则无响应不开始编辑,是点了那个框的响应

    func searchBarShouldBeginEditing(_ searchBar:UISearchBar) ->Bool {

        returntrue

    }

    func searchBarShouldEndEditing(_ searchBar:UISearchBar) ->Bool {

        returntrue//返回false,则不能结束编辑。即取消第一响应不再起作用

    }

    

//    5. 开始编辑状态下,开始写搜索内容时,即光标开始闪烁时

    func searchBarTextDidBeginEditing(_ searchBar:UISearchBar) {

        searchBar.text ="1234"

    }

    func searchBarTextDidEndEditing(_ searchBar:UISearchBar) {

//        正在输呢,手点了别的地方的响应

    }

    

//    6. 把输的字处理后显示到框里。false,则输不进去字

    func searchBar(_ searchBar:UISearchBar, shouldChangeTextIn range:NSRange, replacementText text:String) ->Bool {

        // text 就是每次输的一个字符。例如:

        if text=="s"{

            return false//不让输 s

        }

        returntrue

    } 

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值