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

//
//  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

 

转载于:https://www.cnblogs.com/hualuoshuijia/p/5868463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值