注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Tolecen's Blog

One Heart, One World

 
 
 
 
 

日志

 
 

SearchDisplayController和SearchBar  

2012-03-20 21:15:22|  分类: iOS/Objective-C |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  

#import <UIKit/UIKit.h>

@interface pinpaiview : UIViewController<UITableViewDataSource,UITableViewDelegate>

{

    UITableView *atable;

    NSArray *array1;

    NSArray *array2;

    UISearchDisplayController *displayController;

    UISearchBar *searchBar;

    NSMutableArray * all;

    NSArray *resultTableView; //搜索的结果赋到新的数组

}

-(void)backmethoed;

@property (nonatomic,retain) NSArray *array1;

@property (nonatomic,retain) NSArray *array2;

@property (nonatomic ,retain) NSArray *resultTableView;

@property (nonatomic,assign) NSMutableArray *all;

@property (nonatomic,retain) UISearchDisplayController *displayController;

@property (nonatomic,retain) UISearchBar *searchBar;

@property (nonatomic ,retain) UITableView *atable;

@end

 

 

 

//实现部分

self.atable=[[UITableView alloc] initWithFrame:CGRectMake(0, 46, 320, 460) style:UITableViewStyleGrouped];

    atable.delegate=self;

    atable.dataSource=self;

   

    self.array1=[[NSArray alloc] initWithObjects:@"abc",@"bcd",@"cde", nil];

    self.array2=[[NSArray alloc] initWithObjects:@"def",@"efg", nil];

         self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f,46, 320.0f, 44.0f)];

         self.searchBar.autocorrectionType = UITextAutocorrectionTypeNo;

         self.searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone;

         self.searchBar.keyboardType = UIKeyboardTypeAlphabet;

         self.atable.tableHeaderView = self.searchBar;

    displayController=[[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];

    displayController.searchResultsDelegate=self;

    displayController.searchResultsDataSource=self;

    [self.view addSubview:atable];

   

}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

{

    if (section==0) {

        return @"1";

    }

    if (section==1) {

        return @"2";

    }

    return nil;

}

-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

{

    NSArray *array4=[[NSArray alloc] initWithObjects:@"USA",@"china", nil];

    return array4;

}

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

{

    NSInteger a=0;

//过滤关键字

    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",self.searchBar.text];

    NSLog(@"%@",searchBar.text);

    self.all = [array1 mutableCopy];

   

    [self.all addObjectsFromArray:array2];

    NSLog(@"%@",self.all);

将搜索的结果赋值给新的数组

    self.resultTableView = [self.all filteredArrayUsingPredicate:resultPredicate ] ;

    NSLog(@"%@",self.resultTableView);   

    if ([tableView isEqual:self.searchDisplayController.searchResultsTableView]) { 

        a=[self.resultTableView count];

    }

    else{

        if (section==0) {

            a=[array1 count];

        }

        if (section==1) {

            a=[array2 count];

        }

    }

    return a;

}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    if ([tableView isEqual:self.displayController.searchResultsTableView]) {

        return 1;

    }

    else

    {

        return 2;

    }

}

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

{

    static NSString *stringcell = @"cell";//这个就是那个标识符

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:stringcell];//给这个cell作为一个标识

    //如果原来没有cell,或者被释放没有了,那么就重新新建一个cell并且标识一下

    if (!cell) {

        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:stringcell] autorelease];

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

       

    }

    if ([tableView isEqual:self.searchDisplayController.searchResultsTableView]) {

        cell.textLabel.text=[self.resultTableView objectAtIndex:indexPath.row];

    }

    else{

       

        if (indexPath.section==0)

        {

            cell.textLabel.text=[self.array1 objectAtIndex:indexPath.row];

        }

       

        if (indexPath.section==1)

        {

            cell.textLabel.text= [self.array2 objectAtIndex:indexPath.row];

        }

    }

   

   return cell;

   

}

  评论这张
 
阅读(3137)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018