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
    
  • 相关阅读:
    Kotlin泛型与协变及逆变原理剖析
    struts2中action的class属性值意义
    重新设置Eclipse的workspace路径
    windows下将mysql加入环境变量
    Eclipse插件安装4种方法
    Maven常用命令
    IntelliJ IDEA光标变粗 backspace无法删除内容解决方法
    Weblogic Exception in AppMerge flows' progression
    Oracle的dual
    lgp20151222 解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/5868463.html
Copyright © 2011-2022 走看看