zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    [PoC]某B2B网站的一个反射型XSS漏洞
    Python中的基本语句
    视频: 千重浪Linux系统调试技术培训 03-01_Basic-CPU-Register
    POJ 2955 Brackets (区间dp 括号匹配)
    LeetCode 146 LRU Cache
    Poj1734题解
    Python
    小胖说事29-----iOS中Navigation中左滑pop页面的三种方法
    深入理解javascript之原型
    android 弹幕评论效果
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/5868463.html
Copyright © 2011-2022 走看看