ios(总结)UISearchBar

来源:互联网 发布:中国税务网络大学 编辑:程序博客网 时间:2024/06/05 16:25

UISearchBar:

1.初始化

 UISearchBar *search = [[UISearchBaralloc]initWithFrame:CGRectMake(44,0,375-50,44)];

2.设置代理属性UISearchBarDelegate

    search.delegate =self;

3.设置灰度

    search.placeholder =@"搜索";

4.加到tableView上面

    self.navigationItem.titleView = search;

5.获得searchBar里面的内容的几个方法

本地数据库查询,速度较快的产生数据

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

    //输入文字开始进行模糊查询,查询名字,电话是否包含这些数据

   select * from t_contact where name like '%searchText' or age like '%searchText%'

    

    //%要转,两个%相当于一个%

    //%% == %记住

    NSString *sql = [NSString stringWithFormat: @" select * from t_contact where name like '%%%@%%' or age like '%%%@%%';",searchText,searchText];

//    _contactArray = (NSMutableArray *)[ContectTool contactWithSql:sql];

//    [_tableView reloadData];刷新下tableView


}

6.点击键盘上search的按钮就点击

//服务器查询

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{

    模糊查询:

    NSString *sql = [NSStringstringWithFormat:@" select * from t_contact where name like '%%%@%%' or age like '%%%@%%';",searchBar.text,searchBar.text];


   _contactArray = (NSMutableArray *)[ContectToolcontactWithSql:sql];

    [_tableView reloadData];

}


7.输入文字时调用的代理方法

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar

{

7-1.搜索旁边的cancel按钮修改cancel转为中文

    searchBar.showsCancelButton =YES;

7-2.获得searchBar的子视图    

   UIView *firstSub = [searchBar.subviewslastObject];

7-3.取出子视图对应的按钮进行修改为我们自定义类型的按钮

   for (UIView *subin firstSub.subviews) {

        if ([subisKindOfClass:NSClassFromString(@"UINavigationButton")]) {

           UIButton *btn = (UIButton *)sub;

            [btn setBackgroundImage:[UIImageimageNamed:@""]forState:UIControlStateNormal];

            [btn setTitle:@"取消"forState:UIControlStateNormal];

            btn.titleLabel.font = [UIFontsystemFontOfSize:14];

        }

    }

}

8.点击取消按钮

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar

{   8-1.收起键盘

    [searchBar resignFirstResponder];

    8-2.搜索按钮显示状态取消

    searchBar.showsCancelButton =NO;

}


0 0