模糊搜索(searchBar)

来源:互联网 发布:淘宝官网网址 编辑:程序博客网 时间:2024/06/08 23:28

//

//  ViewController.m

//  locationSerBar

//

//  Created by 添锦 on 16/3/3.

//  Copyright © 2016添锦. All rights reserved.

//


#import "ViewController.h"


@interface ViewController ()<UITableViewDataSource,UITableViewDelegate,UISearchBarDelegate>

@property (strong,nonatomic) IBOutletUISearchBar *searchBar;

@property (strong,nonatomic) IBOutletUITableView *tableView;

@property (strong,nonatomicNSArray  *dataArray;

@property (strong,nonatomicNSMutableArray *dataSource;


@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    _searchBar.delegate =self;

    _dataArray = [[NSArrayalloc]initWithObjects:@"",@"很好",@"很好",@"手动阀",@"",nil];

    _dataSource = [NSMutableArrayarrayWithArray:_dataArray];

    self.tableView.delegate =self;

    self.tableView.dataSource =self;

    [self.tableViewreloadData];

}

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText

{

    if (searchText != nil && searchText.length > 0) {

        _dataSource = [NSMutableArrayarray];

        for (NSString *tempStrin _dataArray) {

            NSMutableString *ms = [[NSMutableStringalloc] initWithString:searchText];

             NSMutableString *ts = [[NSMutableStringalloc] initWithString:tempStr];

            //进行转换

            CFStringTransform((__bridgeCFMutableStringRef)ms, 0,kCFStringTransformMandarinLatin, NO);

             CFStringTransform((__bridgeCFMutableStringRef)ts, 0,kCFStringTransformMandarinLatin, NO);

            /**

             **这两行可以去除音调

             */

            CFStringTransform((__bridgeCFMutableStringRef)ms, NULL,kCFStringTransformStripDiacritics, NO);

            CFStringTransform((__bridgeCFMutableStringRef)ts, NULL,kCFStringTransformStripDiacritics, NO);

            NSLog(@"去掉声母号  %@",ms);

                if ([tsrangeOfString:ms options:NSCaseInsensitiveSearch].length >0 ) {

                    [_dataSource addObject:tempStr];

        }

        [_tableView reloadData];

        }

    }else{

        _dataSource = [NSMutableArrayarrayWithArray:_dataArray];

        [_tableView reloadData];


    }


}

//-(void) searchBarSearchButtonClicked:(UISearchBar *)searchBar {

//    [self searchBar:self.searchBar textDidChange:nil];

//}

//

//- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar

//{

//    [self searchBar:self.searchBar textDidChange:nil];

//}



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

    return [_dataSourcecount] > 0 ?[_dataSourcecount]:0;

}

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

{

   static NSString *cellId =@"cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];

    if (cell == nil) {

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

    }

    if([_dataSourcecount]!= 0 && ![_dataSourceisKindOfClass:[NSNullclass]] && _dataSource !=nil){

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

    }

    return cell;

}

- (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


1 0