123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- //
- // EMSearchViewController.m
- // ChatDemo-UI3.0
- //
- // Created by XieYajie on 2019/1/16.
- // Copyright © 2019 XieYajie. All rights reserved.
- //
- #import "EMSearchViewController.h"
- @interface EMSearchViewController ()
- @end
- @implementation EMSearchViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
-
- self.searchBar = [[EMSearchBar alloc] init];
- self.searchBar.delegate = self;
- [self.view addSubview:self.searchBar];
- [self.searchBar mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.view);
- make.left.equalTo(self.view);
- make.right.equalTo(self.view);
- make.height.equalTo(@50);
- }];
-
- self.tableView.rowHeight = 60;
- [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.searchBar.mas_bottom);
- make.left.equalTo(self.view);
- make.right.equalTo(self.view);
- make.bottom.equalTo(self.view);
- }];
-
- self.searchResults = [[NSMutableArray alloc] init];
- self.searchResultTableView = [[UITableView alloc] init];
- self.searchResultTableView.tableFooterView = [[UIView alloc] init];
- self.searchResultTableView.rowHeight = self.tableView.rowHeight;
- self.searchResultTableView.delegate = self;
- self.searchResultTableView.dataSource = self;
- }
- - (void)dealloc
- {
- [[EMRealtimeSearch shared] realtimeSearchStop];
- [[NSNotificationCenter defaultCenter] removeObserver:self];
- }
- #pragma mark - EMSearchBarDelegate
- - (void)searchBarShouldBeginEditing:(EMSearchBar *)searchBar
- {
- if (!self.isSearching) {
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillShow:) name:UIKeyboardWillShowNotification object:nil];
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardWillHide:) name:UIKeyboardWillHideNotification object:nil];
-
- self.isSearching = YES;
- [self.view addSubview:self.searchResultTableView];
- [self.searchResultTableView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.searchBar.mas_bottom);
- make.left.equalTo(self.view);
- make.right.equalTo(self.view);
- make.bottom.equalTo(self.view);
- }];
- }
- }
- - (void)searchBarCancelButtonAction:(EMSearchBar *)searchBar
- {
- [[EMRealtimeSearch shared] realtimeSearchStop];
-
- [[NSNotificationCenter defaultCenter] removeObserver:self];
- self.isSearching = NO;
-
- [self.searchResults removeAllObjects];
- [self.searchResultTableView reloadData];
- [self.searchResultTableView removeFromSuperview];
- }
- - (void)searchBarSearchButtonClicked:(EMSearchBar *)searchBar
- {
-
- }
- - (void)searchTextDidChangeWithString:(NSString *)aString
- {
-
- }
- #pragma mark - KeyBoard
- - (void)keyBoardWillShow:(NSNotification *)note
- {
- if (!self.isSearching) {
- return;
- }
-
- // 获取用户信息
- 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.searchResultTableView 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
- {
- if (!self.isSearching) {
- return;
- }
-
- // 获取用户信息
- NSDictionary *userInfo = [NSDictionary dictionaryWithDictionary:note.userInfo];
- // 获取键盘动画时间
- CGFloat animationTime = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];
-
- // 定义好动作
- void (^animation)(void) = ^void(void) {
- [self.searchResultTableView mas_updateConstraints:^(MASConstraintMaker *make) {
- make.bottom.equalTo(self.view.mas_bottom);
- }];
- };
-
- if (animationTime > 0) {
- [UIView animateWithDuration:animationTime animations:animation];
- } else {
- animation();
- }
- }
- @end
|