您的位置:首页 > 产品设计 > UI/UE

uitableview 关于键盘挡住输入框解决方法

2016-09-13 14:50 441 查看
//
//  AboutKeyBoardEventViewController.m
//  QueryBussinessInfo
//
//  Created by mac on 16/8/23.
//  Copyright © 2016年 cqytjr. All rights reserved.
//

#import "AboutKeyBoardEventViewController.h"

@interface AboutKeyBoardEventViewController ()

@end

@implementation AboutKeyBoardEventViewController

- (void)viewDidLoad {
[super viewDidLoad];
self.tableView = [[UITableView alloc]initWithFrame:self.view.bounds];
[self.view addSubview:self.tableView];
//监听键盘弹出事件
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
//监听键盘隐藏事件
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 0;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
return nil;
}

#pragma mark - 键盘即将弹出事件处理
- (void)keyboardWillShow:(NSNotification *)notification
{
//获取键盘信息
NSDictionary *keyBoardInfo = [notification userInfo];

//获取动画时间
CGFloat duration = [[keyBoardInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];

//获取键盘的frame信息
NSValue *value = [keyBoardInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGSize keyboardSize = [value CGRectValue].size;

[UIView animateWithDuration:duration animations:^{
//        CGRect frame = _chatBar.frame;
//        frame.origin.y = SCREENHEIGHT - keyboardSize.height - frame.size.height;
//        _chatBar.frame = frame;
CGRect rect = self.tableView.frame;
rect.size.height = keyboardSize.height;
self.tableView.frame = rect;

} completion:nil];
}
#pragma mark - 键盘即将隐藏事件
- (void)keyboardWillHide:(NSNotification *)notification
{

//获取键盘信息
NSDictionary *keyBoardInfo = [notification userInfo];

//获取动画时间
CGFloat duration = [[keyBoardInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];

//获取键盘的frame信息

[UIView animateWithDuration:duration animations:^{

CGRect rect = self.tableView.frame;
rect.size.height = self.view.bounds.size.height;
self.tableView.frame = rect;
} completion:nil];
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: