// // EMSearchResultController.m // DXStudio // // Created by XieYajie on 22/09/2017. // Copyright © 2017 dxstudio. All rights reserved. // #import "EMSearchResultController.h" #import "MJRefresh.h" @interface EMSearchResultController () @end @implementation EMSearchResultController - (void)viewDidLoad { [super viewDidLoad]; // Uncomment the following line to preserve selection between presentations. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [self _initSubviews]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.navigationController.navigationBarHidden = YES; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } #pragma mark - Getter - (UISearchBar *)searchBar { if (_searchBar == nil) { _searchBar = [[UISearchBar alloc] init]; _searchBar.searchBarStyle = UISearchBarStyleMinimal; _searchBar.backgroundColor = [UIColor whiteColor]; _searchBar.returnKeyType = UIReturnKeyDone; } return _searchBar; } #pragma mark - Subviews - (void)_initSubviews { self.view.backgroundColor = [UIColor whiteColor]; [self.view addSubview:self.searchBar]; [self.searchBar mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top).offset(25); make.left.equalTo(self.view.mas_left); make.right.equalTo(self.view.mas_right); make.height.equalTo(@50); }]; [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.searchBar.mas_bottom); make.left.equalTo(self.view.mas_left); make.right.equalTo(self.view.mas_right); make.bottom.equalTo(self.view.mas_bottom); }]; self.defaultFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 80)]; UILabel *label = [[UILabel alloc] init]; label.text = NSLocalizedString(@"title.searchNoResult", @"Search has no result"); label.textAlignment = NSTextAlignmentCenter; label.textColor = [UIColor grayColor]; label.font = [UIFont systemFontOfSize:17.0]; [self.defaultFooterView addSubview:label]; [label mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.defaultFooterView).offset(20); make.left.equalTo(self.defaultFooterView).offset(20); make.right.equalTo(self.defaultFooterView).offset(-20); make.bottom.equalTo(self.defaultFooterView).offset(-20); }]; } #pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { if (_numberOfSectionsInTableViewCompletion) { return _numberOfSectionsInTableViewCompletion(tableView); } // Return the number of sections. return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (_numberOfRowsInSectionCompletion) { return _numberOfRowsInSectionCompletion(tableView, section); } // Return the number of rows in the section. return [self.dataArray count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (_cellForRowAtIndexPathCompletion) { return _cellForRowAtIndexPathCompletion(tableView, indexPath); } else{ static NSString *CellIdentifier = @"UITableViewCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; // Configure the cell... if (cell == nil || !cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } return cell; } } // Override to support conditional editing of the table view. - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { // Return NO if you do not want the specified item to be editable. if (_canEditRowAtIndexPath) { return _canEditRowAtIndexPath(tableView, indexPath); } else{ return NO; } } - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { //在iOS8.0上,必须加上这个方法才能出发左划操作 if (_commitEditingAtIndexPath) { return _commitEditingAtIndexPath(tableView, editingStyle, indexPath); } } #pragma mark - Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (_didSelectRowAtIndexPathCompletion) { return _didSelectRowAtIndexPathCompletion(tableView, indexPath); } } - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath { if (_didDeselectRowAtIndexPathCompletion) { _didDeselectRowAtIndexPathCompletion(tableView, indexPath); } } #pragma mark - KeyBoard - (void)keyBoardWillShow:(NSNotification *)note { // 获取用户信息 NSDictionary *userInfo = [NSDictionary dictionaryWithDictionary:note.userInfo]; // 获取键盘高度 CGRect keyBoardBounds = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; CGFloat keyBoardHeight = keyBoardBounds.size.height; // 获取键盘动画时间 CGFloat animationTime = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]; // 定义好动作 void (^animation)(void) = ^void(void) { [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(self.view.mas_bottom).offset(-keyBoardHeight); }]; }; if (animationTime > 0) { [UIView animateWithDuration:animationTime animations:animation]; } else { animation(); } } - (void)keyBoardWillHide:(NSNotification *)note { // 获取用户信息 NSDictionary *userInfo = [NSDictionary dictionaryWithDictionary:note.userInfo]; // 获取键盘动画时间 CGFloat animationTime = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]; // 定义好动作 void (^animation)(void) = ^void(void) { [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(self.view.mas_bottom); }]; }; if (animationTime > 0) { [UIView animateWithDuration:animationTime animations:animation]; } else { animation(); } } #pragma mark - Data - (void)tableViewDidTriggerFooterRefresh { if (_footerBeginRefreshCompletion) { ++self.page; _footerBeginRefreshCompletion(self.tableView); } } @end