博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UI1_UITableViewSearchController
阅读量:5281 次
发布时间:2019-06-14

本文共 5191 字,大约阅读时间需要 17 分钟。

//  UI1_UITableViewSearchController////  Created by zhangxueming on 15/7/15.//  Copyright (c) 2015年 zhangxueming. All rights reserved.//#import "AppDelegate.h"#import "ViewController.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // Override point for customization after application launch.    ViewController *root = [[ViewController alloc] init];    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];    self.window.rootViewController = nav;    self.window.backgroundColor = [UIColor whiteColor];    [self.window makeK
////  ViewController.m//  UI1_UITableViewSearchController////  Created by zhangxueming on 15/7/15.//  Copyright (c) 2015年 zhangxueming. All rights reserved.//#import "ViewController.h"@interface ViewController (){    UITableView *_tableView;//表视图    NSMutableArray *_dataList;//数据源    //UISearchDisplayController    UISearchController *_searchController;//搜索控制器    NSMutableArray *_searchList;//搜索的结果}@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.    [self createData];    [self createUI];}- (void)createData{    _dataList = [NSMutableArray array];    _searchList = [NSMutableArray array];    for (int i='A'; i<='Z'; i++) {        NSMutableArray *array = [NSMutableArray array];        for (int j=0; j<5; j++) {            NSInteger num = arc4random()%50+1;            NSString *name = [NSString stringWithFormat:@"人物%d:name%ld",j,num];            [array addObject:name];        }        [_dataList addObject:array];    }}- (void)createUI{    _tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];    _tableView.delegate = self;    _tableView.dataSource  = self;    [self.view addSubview:_tableView];        //创建搜索控制器, nil 表示在当前view上显示搜索结果    _searchController = [[UISearchController alloc] initWithSearchResultsController:nil];    //更新搜索结果    _searchController.searchResultsUpdater = self;    //隐藏导航栏    _searchController.hidesNavigationBarDuringPresentation = NO;    //背景变暗    _searchController.dimsBackgroundDuringPresentation = NO;    //添加searchBar    CGRect frame = _searchController.searchBar.frame;    frame.size.height = 44;    _searchController.searchBar.frame = frame;    _tableView.tableHeaderView = _searchController.searchBar;}#pragma mark  ---UITableView代理---//返回分区的个数- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{    if(_searchController.active)    {        return 1;    }    else    {        return _dataList.count;    }}//返回分区中的行数- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    //_dataList[section] <==> [_dataList objectAtIndex:section];    if (_searchController.active) {        return _searchList.count;    }    return [_dataList[section] count];}//创建cell- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    static NSString *cellId = @"cell";    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];    if (!cell) {        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellId];    }    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;    if (_searchController.active) {        cell.textLabel.text = _searchList[indexPath.row];//[_searchList objectAtIndex:indexPath.row];    }    else    {        cell.textLabel.text = _dataList[indexPath.section][indexPath.row];    }    return cell;}//设置分区的头标题- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{    if (_searchController.active) {        return @"搜索结果";    }    return [NSString stringWithFormat:@"%c",(char)(section+'A')];}//设置分区头的高度- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{    return 50;}//设置分区索引- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{    if(_searchController.active)    {        return nil;    }    NSMutableArray *titles = [NSMutableArray array];    [titles addObject:UITableViewIndexSearch];    for (int i='A'; i<='Z'; i++) {        [titles addObject:[NSString stringWithFormat:@"%c",(char)i]];    }    return titles;}- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{    return index-1;}//更新搜索结果- (void)updateSearchResultsForSearchController:(UISearchController *)searchController{    [_searchList removeAllObjects];    //NSPredicate 谓词语法    //过滤数据    NSString *searchString = _searchController.searchBar.text;    for (int i=0; i<_dataList.count; i++) {        NSInteger count = [[_dataList objectAtIndex:i] count];        for (NSInteger j=0; j

 

eyAndVisible]; return YES; } // // ViewController.h // UI1_UITableViewSearchController // // Created by zhangxueming on 15/7/15. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import 
@interface ViewController : UIViewController
@end

 

转载于:https://www.cnblogs.com/0515offer/p/4649136.html

你可能感兴趣的文章
实训第五天
查看>>
平台维护流程
查看>>
2012暑期川西旅游之总结
查看>>
12010 解密QQ号(队列)
查看>>
2014年辛星完全解读Javascript第一节
查看>>
装配SpringBean(一)--依赖注入
查看>>
java选择文件时提供图像缩略图[转]
查看>>
方维分享系统二次开发, 给评论、主题、回复、活动 加审核的功能
查看>>
Matlab parfor-loop并行运算
查看>>
string与stringbuilder的区别
查看>>
2012-01-12 16:01 hibernate注解以及简单实例
查看>>
iOS8统一的系统提示控件——UIAlertController
查看>>
PAT甲级——1101 Quick Sort (快速排序)
查看>>
python创建进程的两种方式
查看>>
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>
迭代器Iterator
查看>>
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
旅途上看的电影和观后感
查看>>