首页 > 代码库 > 用UITextField作自定义搜索框

用UITextField作自定义搜索框

1.声明两个可变数组

// 搜索前:原始数据数组

NSMutableArray *original

// 搜索后:搜索数据数组

NSMutableArray *search

// 用于UItableView 选择显示的数据(原始数组 或 搜索数组)

Bool isOriginal

 

 

2.在viewDidLoad方法中给UITextField添加关联方法

[UITextField addTarget:self action:@selector(searchMethod) forControlEvents:UIControlEventEditingChanged];

把isOriginal 设置为YES

 

 

3.写搜索方法

-(void)searchMethod

{

  // UITextField有输入

  if (UITextField.text.length > 0)

  {

    mIsDB = NO;

    [search removeAllObjects];

    for (int i = 0; i < original.count; i ++)

     {

      NSRange range = [original[i] rangeOfString:UITextField.text options:NSCaseInsensitiveSearch];

      if (range.length > 0)

        {

          // 把搜索数据放在搜素数组中

          [search addObject:original[i]];

          // 为了搜索出得列表不断刷新放在循环内

          [self.tv_table reloadData];

        }

     }

   } else {

        // UITextField没有输入

        mIsDB = YES;

        [self.tv_table reloadData];

      }

}

4. 在 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

方法中选择数据(原始数组 或 搜索数组)

if (isOriginal) {

  // 原始数据

  // 与正常一样把数据显示在控件上

} else{

   // 搜索数据

  // 与正常一样把数据显示在控件上

}

用UITextField作自定义搜索框