博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在表格中实现搜索
阅读量:2352 次
发布时间:2019-05-10

本文共 2190 字,大约阅读时间需要 7 分钟。

    上一篇已经讲诉了如何将文字显示到表格中,现在来实现在表格上方添加一个搜索栏,进行对表格中文字的搜索

 1:拖拽一个 Search Bar到表格视图的顶部

2:为搜索栏控件设置搜索代理,选中搜索栏后,按住control键从搜索栏控件中拖拽出一根蓝色的引导线到布局栏的视图控制器标记,在弹出的窗口中选择delegate

3:在上一篇的代码中做如下的修改即可,已经在代码中给出相应的解释

#import "ViewController.h"@interface ViewController ()@property(nonatomic,strong) NSMutableArray *provinces;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    [self resetData];//便于代码重用    [self.tableView setContentOffset:CGPointMake(0, 44) animated:NO];    }-(void)resetData{    //连接服务器,返回教练列表    self.provinces =[NSMutableArray arrayWithArray:@[@"张三",@"李四",@"王五",@"张翼",@"账务",@"123",@"1234",@"23",@"230",@"236",@"237"]];};#pragma mark -数据库协议-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    return [self.provinces count];}//tableView cellForRowAtIndexPath:方法返回单元格对象-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ProvincesIdentifier" forIndexPath:indexPath];    //指定显示文本    cell.textLabel.text = [self.provinces objectAtIndex:[indexPath row]];    return cell;}//实现搜索-(void)handleSearch:(NSString *)searchText{    //provincesToRemove包含需要被删除的信息    NSMutableArray *provincesToRemove = [[NSMutableArray alloc]init];    //轮询    for(NSString *province in self.provinces)    {   //rangeOfString判断是否包含关键字        if ([province rangeOfString:searchText].location == NSNotFound) {            [provincesToRemove addObject:province];        }    }    //删除位于待删除信息列表    [self.provinces removeObjectsInArray:provincesToRemove];    //重新加载数据    [self.tableView reloadData];}//搜索栏数据协议//点击“搜索”按钮时才进行搜索//-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar//{//    NSString *searchText = [searchBar text];//    [self handleSearch:searchText];//    [searchBar resignFirstResponder];//}//输入文本就会触发-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{    if ([searchText length] == 0) {        [self resetData];        [self.tableView reloadData];        return;    }    [self handleSearch:searchText];}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    }@end
运行结果为:

你可能感兴趣的文章
分布式框架Dubbo
查看>>
解决PKIX:unable to find valid certification path to requested target 的问题
查看>>
hibernate.cfg.xml配置详解
查看>>
hibernate+proxool的数据库连接池配置方法
查看>>
eclipse中java项目转成Web项目
查看>>
Java项目svn的迁移
查看>>
Java 编程中异常处理的最佳实践
查看>>
Java异常处理机制
查看>>
Java:回调机制
查看>>
axis2创建web service
查看>>
Axis,axis2,Xfire以及cxf对比
查看>>
【工具】人脸识别比对开放平台汇总
查看>>
基于DirectUI技术开发的发卡系统
查看>>
STM32 HAL库、标准外设库、LL库(STM32 Embedded Software)
查看>>
51和AVR单片机
查看>>
DSP开发板
查看>>
stm32标准外设库和芯片资料下载地址
查看>>
ARM Keil MDK开发STM32工程模板
查看>>
NoSQL分类及常用软件
查看>>
ubuntu 16.04安装nVidia显卡驱动和cuda/cudnn踩坑过程
查看>>