UISearchDisplayController 简单用法

来源:互联网 发布:淘宝上说的厂家直销 编辑:程序博客网 时间:2024/05/18 00:46

{

   NSArray *data;

   NSArray *filterData;

   UISearchDisplayController *searchDisplayController;

}




#import "MainViewController.h"


@interface MainViewController ()


@end


@implementation MainViewController


- (id)initWithStyle:(UITableViewStyle)style

{

   self = [superinitWithStyle:style];

   if (self) {

        data = [NSArrayarrayWithObjects:@"Allan",@"Abbbb",@"Acccc",@"Bccccc",@"Cddddffk",@"Cddkllll",@"Ekkflfl",@"Ekljljfg" ,@"Leslie",@"Mm",@"Meinv",@"Meihi",@"Catilin",@"Arron",nil];

    }

    return self;

}



- (void)viewDidLoad

{

    [superviewDidLoad];

    UISearchBar *searchBar = [[UISearchBaralloc] initWithFrame:CGRectMake(0,0, self.view.frame.size.width,44)];

    searchBar.placeholder =@"搜索";

    

    // 添加 searchbar headerview

    self.tableView.tableHeaderView = searchBar;

    

    // searchbar 初始化 SearchDisplayController

    // 并把 searchDisplayController 和当前 controller关联起来

    searchDisplayController = [[UISearchDisplayControlleralloc] initWithSearchBar:searchBarcontentsController:self];

    

    // searchResultsDataSource 就是 UITableViewDataSource

    searchDisplayController.searchResultsDataSource =self;

    // searchResultsDelegate 就是 UITableViewDelegate

    searchDisplayController.searchResultsDelegate =self;

    

    

    UIButton *button = [UIButtonbuttonWithType:UIButtonTypeCustom];

    [self.viewaddSubview:button];

    button.frame =CGRectMake(100,100, 150, 18);

    button.backgroundColor = [UIColorredColor];

}


- (void)didReceiveMemoryWarning

{

    [superdidReceiveMemoryWarning];

}


#pragma mark - Table view data source


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

   return 1;

}


/*

 * 如果原 TableView SearchDisplayController 中的 TableView delete 指向同一个对象

 * 需要在回调中区分出当前是哪个 TableView

 */

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

   if (tableView == self.tableView) {

       return data.count;

    }else{

       // 谓词搜索

        NSPredicate *predicate = [NSPredicatepredicateWithFormat:@"self contains [cd] %@",searchDisplayController.searchBar.text];

        filterData =  [[NSArrayalloc] initWithArray:[datafilteredArrayUsingPredicate:predicate]];

       return filterData.count;

    }

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

   static NSString *cellId =@"mycell";

   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];

    

   if (cell == nil) {

        cell = [[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellId];

    }

    

   if (tableView == self.tableView) {

        cell.textLabel.text =data[indexPath.row];

    }else{

        cell.textLabel.text =filterData[indexPath.row];

    }

    

   return cell;

}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

   NSString *text;

    

   if (tableView == self.tableView) {

        text =data[indexPath.row];

    }else{

        text =filterData[indexPath.row];

    }

   if( [data containsObject:text]){

       NSLog(@"发音");

    }

    

//    [self.view.superview removeFromSuperview];

   NSLog(@"you click %lu   %@",indexPath.row,text);

    

}


@end


0 0
原创粉丝点击