首页 > 其他 > 详细

UISearchDisplayCotroller

时间:2015-06-30 13:04:42      阅读:300      评论:0      收藏:0      [点我收藏+]
//
//  LJETableViewController.m
//  LJESearchController
//
//  Created by lije on 15/6/29.
//  Copyright (c) 2015年 lije. All rights reserved.
//

#import "LJETableViewController.h"


#define kRowHeight 60
#define kSearchBarHeight 80
#define kSearchBarWidth self.view.frame.size.width


@interface LJETableViewController () {
    UITableView *_tableview;
}

@property (nonatomic, strong) NSArray *dataSource;

@end

@implementation LJETableViewController

NSString * const CellIdentifier = @"CellIdentifier";

- (void)viewDidLoad {
    [super viewDidLoad];

    [self configureLayout];
}

- (void)configureLayout {
    _tableview = [[UITableView alloc] initWithFrame:self.view.bounds
                                              style:UITableViewStylePlain];
    [_tableview registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier];
    _tableview.delegate = self;
    _tableview.dataSource = self;
    [self.view addSubview:_tableview];
    
    self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, kSearchBarWidth, kSearchBarHeight)];
    [self.searchBar sizeToFit];
    _tableview.tableHeaderView = self.searchBar;
    
    _dataSource = @[@"wangyu", @"zhangjing", @"mali"];
    self.dataSource = _dataSource;
}

#pragma mark - UITableviewDelegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.dataSource.count;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return kRowHeight;
}

#pragma mark - UITableviewDataSource
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }
    
    if (indexPath.row < self.dataSource.count) {
        cell.textLabel.text = self.dataSource[indexPath.row];
    }
    
    return cell;
}

@end

//
//  LJESearchController.m
//  LJESearchController
//
//  Created by lije on 15/6/29.
//  Copyright (c) 2015年 lije. All rights reserved.
//

#import "LJESearchController.h"
#import "LJETableViewController.h"

@interface LJESearchController ()<UISearchBarDelegate>

@property (nonatomic, strong) UISearchDisplayController *searchController;
@property (nonatomic, strong) LJETableViewController *tableSeaController;

@end

@implementation LJESearchController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.title = @"Search";
    
    self.tableSeaController = [[LJETableViewController alloc] init];
    
    [self rn_addChildViewController:self.tableSeaController];
    self.searchController = [[UISearchDisplayController alloc] initWithSearchBar:self.tableSeaController.searchBar contentsController:self];
}


- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    
    self.tableSeaController.view.frame = self.view.bounds;
}

- (BOOL)shouldAutomaticallyForwardAppearanceMethods {
    return YES;
}

- (void)rn_addChildViewController:(UIViewController *)controller {
    [controller beginAppearanceTransition:YES animated:NO];
    [controller willMoveToParentViewController:self];
    [self addChildViewController:controller];
    [self.view addSubview:controller.view];
    [controller didMoveToParentViewController:controller];
    [controller endAppearanceTransition];
}

- (void)rn_removeChildViewController:(UIViewController *)controller {
    if ([self.childViewControllers containsObject:controller]) {
        [controller beginAppearanceTransition:NO animated:NO];
        [controller willMoveToParentViewController:nil];
        [controller.view removeFromSuperview];
        [controller removeFromParentViewController];
        [controller didMoveToParentViewController:nil];
        [controller endAppearanceTransition];
    }
}

@end

版权声明:本文为博主原创文章,未经博主允许不得转载。

UISearchDisplayCotroller

原文:http://blog.csdn.net/u010606986/article/details/46692105

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!