zoukankan      html  css  js  c++  java
  • 李洪强iOS开发之- 点击屏幕遮挡键盘

    李洪强iOS开发之- 点击屏幕遮挡键盘

    实现的效果: 

    01 - 给当前的view添加点击事件,使点击屏幕的时候,让键盘退出

    /**
    * 点击屏幕 隐藏键盘
    *
    * @param tap
    */
    -(void)keyboardHide:(UITapGestureRecognizer*)tap
    {
    [self.view endEditing:YES];
    }

    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];
    //设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。
    tapGestureRecognizer.cancelsTouchesInView = NO;
    //将触摸事件添加到当前view
    [self.view addGestureRecognizer:tapGestureRecognizer];

    #import "CFShoppingCartViewController.h"

    02 - 实现点击输入框 的时候,让当前的view整体上移,目的是不遮盖当前的输入框

    03 - 实现textview的代理

    #pragma mark --- 实现UITextView的代理---

    -(void)textViewDidChange:(UITextView *)textView

    {

        _textView11.text = textView.text;

        if (textView.text.length == 0) {

            _label11.text = @"有什么需要补充的";

        }else{

            _label11.text = @"";

        }

    }

     

    - (BOOL)textViewShouldBeginEditing:(UITextView *)textView{

        _label11.text = @"";

        //  [self.label1 removeFromSuperview];

        

        return YES;

    }

    - (BOOL)textViewShouldEndEditing:(UITextView *)textView{

        _label11.text = @"";

        

        return YES;

    }

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

        

        [UIView animateWithDuration:0.8 animations:^{

            [self.view endEditing:YES];

        }];

    }

     03 - 键盘的通知

     

    #pragma mark — 键盘遮挡

     

    -(void)createNotifiticationCenter

    {

        //创建通知中心

        NSNotificationCenter * center = [NSNotificationCenter defaultCenter];

        //键盘弹出

        [center addObserver:self selector:@selector(receivesKeyBordShowNotification:) name:UIKeyboardWillShowNotification object:nil];

        

        //监听键盘收回时发送的通知

        [center addObserver:self selector:@selector(receivesKeyBordHiddenNotification:) name:UIKeyboardWillHideNotification object:nil];

    }

     

    -(void)receivesKeyBordShowNotification:(NSNotification *)noti

    {

        

        //取出键盘的弹起时间

        NSTimeInterval time = [[noti.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]doubleValue];

        //在键盘的这段时间内将界面上的控件上移

        

        //使用动画

        [UIView animateWithDuration:time delay:0 options:0 animations:^{

            //将界面整体上移

            CGRect boubds = self.view.bounds;

            boubds.origin.y = 170;

            self.view.bounds = boubds;

        } completion:^(BOOL finished) {

            

        }];

    }

     

    -(void)receivesKeyBordHiddenNotification:(NSNotification *)notifi

    {

        //从通知信息体取出键盘收回的时间

        NSTimeInterval time = [[notifi.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]doubleValue];

        

        //用动画将界面下移

        [UIView animateWithDuration:time delay:0 options:0 animations:^{

            CGRect bounds = self.view.bounds;

            bounds.origin.y = 0;

            self.view.bounds = bounds;

        } completion:^(BOOL finished) {

            

        }];

    }

     

  • 相关阅读:
    java网络编程客户端与服务端原理以及用URL解析HTTP协议
    java网络编程TCP传输—流操作—服务端反馈与客户端接收
    java网络编程TCP传输—流操作—拿到源后的写入动作
    用java网络编程中的TCP方式上传文本文件及出现的小问题
    关于session设置
    mencache
    打包
    反编译
    原型工具
    开源的jdbc
  • 原文地址:https://www.cnblogs.com/LiLihongqiang/p/5896688.html
Copyright © 2011-2022 走看看