#import
.h
1
2
3
4
5
6
7
8
9
10
|
@interface
ViewController : UIViewController<uisearchbardelegate,uisearchdisplaydelegate,uitableviewdatasource,uitableviewdelegate>
@property
(nonatomic,strong) UISearchDisplayController *searchDisplayC;
//搜索框控件控制器
@property
(weak, nonatomic) IBOutlet UISearchBar *searchBar;
//搜索条
@property
(nonatomic,strong) NSArray *allArray;
//所有数据数组
@property
(nonatomic,strong) NSMutableArray *filterArray;
//搜索出来的数据数组
@end
</uisearchbardelegate,uisearchdisplaydelegate,uitableviewdatasource,uitableviewdelegate>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#
import
"ViewController.h"
@interface
ViewController ()
@end
@implementation
ViewController
@synthesize
searchBar;
@synthesize
searchDisplayC;
@synthesize
filterArray;
@synthesize
allArray;
- (
void
)viewDidLoad
{
[
super
viewDidLoad];
allArray = [NSArray arrayWithObjects:@
"济南"
,@
"天津"
,@
"潍坊"
,@
"上海"
,@
"北京"
,@
"青岛"
,@
"台湾"
,@
"钓鱼岛"
, nil];
searchDisplayC = [[UISearchDisplayController alloc]initWithSearchBar:searchBar contentsController:self];
searchDisplayC.delegate = self;
searchDisplayC.searchResultsDelegate = self;
searchDisplayC.searchResultsDataSource = self;
// Do any additional setup after loading the view, typically from a nib.
}
#pragma mark - tabledelegete
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return
filterArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static
NSString *identifier = @
"Cell"
;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if
(cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
cell.textLabel.text = [filterArray objectAtIndex:indexPath.row];
[cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
return
cell;
}
- (
void
)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//选择后要做的事情
NSLog(@
"已选择"
);
}
#pragma mark - searchdelegate
- (BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
[filterArray removeAllObjects];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@
"SELF contains[c] %@"
,searchString];
//用于过滤
filterArray = [NSMutableArray arrayWithArray:[allArray filteredArrayUsingPredicate:predicate]];
return
YES;
}
- (BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption
{
//当scope改变时调用
return
YES;
}
@end
|