搜索框控件,写了个最简单的dome



#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>



.m

?
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值