zoukankan      html  css  js  c++  java
  • iOS中利用UISearchBar实现搜索

    先把源码贴出来

    https://github.com/losedMemory/ZSSearchBar   这是我在github上写的一个Demo,大家可以看看

    在大多数app中都会用到搜索功能,那么搜索功能的实现离不开UISearchBar这个控件.

    UISearchBar继承自UIView,下面简单的介绍一下它的属性和方法.

     UISearchBar *searchBar = [[UISearchBar alloc]init];

     searchBar.frame = CGRectMake(0, 0, 300, 44);//初始化方法

    [searchBar setPlaceholder:@"搜索"];//设置占位文字

    [searchBar setBarTintColor:[UIColor orangeColor]];//在这里设置背景颜色

    当然会有些人这么写:[searchBar setTintColor:[UIColor orangeColor]];但是根据文档这个方法在iOS7之后就不再影响bar的背景颜色

    [searchBar setTranslucent:YES];//设置是否透明

    [searchBar setShowsSearchResultsButton:YES];//是否显示搜索结果按钮

    就是这个按钮,这个可以放大搜索结果

    [searchBar setSearchTextPositionAdjustment:UIOffsetMake(30, 0)];//设置搜索框中文文本框的文本偏移量

     

    [searchBar setShowsScopeBar:YES];

    [searchBar setScopeButtonTitles:[NSArray arrayWithObjects:@"Singer",@"Song",@"Album", nil]];//这是设置搜索框下面的分栏的,效果如下:

    [searchBar setSelectedScopeButtonIndex:1];//在这里设置默认选中的分栏

     

    [searchBar setInputAccessoryView:maskView];//在进行搜索时显示一个出现的遮罩,效果参照电话簿

    [searchBar setShowsCancelButton:YES]  //是否显示取消按钮

    //获取cancelButton的方法,可以设置其点击事件

     UIButton *cancelButton = [self.searchBar valueForKey:@"_cancelButton"];

    代理方法:

    //已经开始进行编辑

    - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar

    //UISearchBar得到焦点并开始编辑时,执行该方法

    - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar

    //取消按钮的点击事件

    - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar

    //在键盘中的搜索按钮的点击事件

    - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

    //当搜索框中的内容发生改变时会自动进行搜索,这个是经常用的

    - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText

    一般比较常用的就是这些

     

  • 相关阅读:
    vue+vuex构建单页应用
    vue如何做分页?
    cookie和session的原理机制
    经常遇到js的面试题
    CSS浏览器兼容性问题解决方法总结
    前端性能优化----yahoo前端性能团队总结的35条黄金定律
    bom对象
    正则表达式
    JavaScript
    常见浏览器bug以及解决方法
  • 原文地址:https://www.cnblogs.com/losedMemory/p/6103097.html
Copyright © 2011-2022 走看看