123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- //
- // EMSearchResultController.m
- // DXStudio
- //
- // Created by XieYajie on 22/09/2017.
- // Copyright © 2017 dxstudio. All rights reserved.
- //
- #import "EMSearchResultController.h"
- #import "MJRefresh.h"
- @interface EMSearchResultController ()<UITableViewDelegate, UITableViewDataSource>
- @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
|