• 搜索框UISearchController的使用(iOS8.0以后替代UISearchBar + UISearchDisplayController)


    1.searchResultsUpdater:设置显示搜索结果的控制器

    1
        _mySearchController.searchResultsUpdater = self;

    2.dimsBackgroundDuringPresentation:设置开始搜索时背景显示与否

    1
        _mySearchController.dimsBackgroundDuringPresentation = NO;

    3.[searchBar sizeToFit]:设置searchBar位置自适应

    1
        [_mySearchController.searchBar sizeToFit];

    4.设置searchBar为UITableView的头部视图

    1
        self.myTableView.tableHeaderView = self.mySearchController.searchBar;

    5.UISearchResultsUpdating:代理方法

    #import "SearchViewController.h"

    @interface ShareViewController ()<UISearchResultsUpdating,UITableViewDataSource,UITableViewDelegate>

    @property (nonatomic, strong) UITableView *myTableView;

    @property (nonatomic, strong) NSMutableArray *visableArray;//可见的

    @property (nonatomic, strong) NSMutableArray *filterArray;//滤波器

    @property (nonatomic, strong) NSMutableArray *dataSourceArray;

    @property (nonatomic, strong) UISearchController *mySearchController;

    @end

    @implementation SearchViewController

    - (void)viewDidLoad {

        [super viewDidLoad];

        

        [self initial];

    }

    - (void)initial{

        self.dataSourceArray = [NSMutableArray array];

        self.filterArray = [NSMutableArray array];

        for (int i = 0; i < 26; i++) {

            for (int j = 0; j < 4; j++) {

                NSString *str = [NSString stringWithFormat:@"%c%d", 'A'+i, j];

                [self.dataSourceArray addObject:str];

            }

        }

        

        self.visableArray = self.dataSourceArray;

        

        self.myTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];

        _myTableView.delegate = self;

        _myTableView.dataSource = self;

        [self.view addSubview:_myTableView];

        

        self.mySearchController = [[UISearchController alloc] initWithSearchResultsController:nil];

        _mySearchController.searchResultsUpdater = self;

        _mySearchController.dimsBackgroundDuringPresentation = NO;

        [_mySearchController.searchBar sizeToFit];

        

        self.myTableView.tableHeaderView = self.mySearchController.searchBar;

    }

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

        if (!_visableArray || _visableArray.count == 0) {

            _visableArray = _dataSourceArray;

        }

        return _visableArray.count;

    }

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

        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];

        

        if (!cell) {

            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"identifier"];

        }

        

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

        

        return cell;

    }

    - (void)updateSearchResultsForSearchController:(UISearchController *)searchController{

        NSString *filterString = searchController.searchBar.text;

        

        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [c] %@", filterString];

        

        self.visableArray = [NSMutableArray arrayWithArray:[self.dataSourceArray filteredArrayUsingPredicate:predicate]];

        

        [self.myTableView reloadData];

    }

  • 相关阅读:
    数据切分——Atlas介绍
    HDU 5015 233Matrix (构造矩阵)
    Wincc操作数据库SQLSERVER
    UIWebView 设置背景为透明
    29个你必须知道的Linux命令
    【读书笔记】iOS-UIWindow-WindowLevel
    linux下uart应用编程
    Java Web HelloWorld!
    手把手图文教你eclipse下如何配置tomcat
    Tomcat安装及配置教程
  • 原文地址:https://www.cnblogs.com/lrr0618/p/5177656.html
Copyright © 2020-2023  润新知