首页 > 代码库 > 用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作自定义搜索框