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
    
  • 相关阅读:
    UGUI组件之Slider组件简单笔记
    UGUI事件之Drag拖拽事件
    C#的数据类型之最常用的几种类型
    UGUI组件之Text文本组件简单笔记
    UGUI组件之Toggle 组件简单笔记
    Print 与Debug.Log的区别
    Unity脚本用VS打开出现 "以下文件中的行尾不一致,要将行尾标准化吗?"
    UGUI组件之Image 组件简单笔记
    UGUI事件之Pointer指针事件
    定制自己的Unity脚本模板
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/5868463.html
Copyright © 2011-2022 走看看