IOS TextField伴随键盘移动

这篇文章介绍的是一个简单而又实用的小方法。

我想对于登陆时的一些效果大家应该都不会陌生。

今天就介绍一下,当开始输入TextField文本时键盘弹出TextField伴随键盘移动的实现。

先看一下演示效果

我们对TextFiel进行约束。约束内容如下??

约束结束后,我们需要做一个很重要的是,就是把把TextField的底部约束拖到相应的代码区域。

内容如下??

做完这些我们就可以通过代码实现响应的内容

实现代码如下:

//
//  ViewController.m
//  CX TextFiled伴随键盘移动的实现
//
//  Created by ma c on 16/3/31.
//  Copyright ? 2016年 xubaoaichiyu. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomSpace;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //简历通知
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillChangeFrameNotification:) name:UIKeyboardWillChangeFrameNotification object:nil];
}
-(void)keyboardWillChangeFrameNotification:(NSNotification *)note{
    //获取键盘的饿frame
    CGRect frmae = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

    //让TextFiled的底部约束间距为屏幕高度减去键盘顶部的y值即可
    //注意 这里不要使其等于键盘的高度,因为高度时死的,会导致键盘下去后,TextField并未下去的结果。
    self.bottomSpace.constant = [UIScreen mainScreen].bounds.size.height - frmae.origin.y;

    //获取键盘的动画时间,使TextField与键盘的形态一致
    CGFloat interval = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    //设置Text的动画
    [UIView animateWithDuration:interval animations:^{

        //注意这里不是改变值,之前已经改变值了,
        //在这里需要做的事强制布局
        [self.view layoutIfNeeded];

    }];

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

    [self.view endEditing:YES];

}

@end

时间: 06-18

IOS TextField伴随键盘移动的相关文章

iOS TextField数字键盘的限制位数处理(特别适用于手机登陆)

Hi~大家好,这么长时间不和大家见面了,说来惭愧,最近忙于工作,已经很久没有写博客了, 接下来和大家分享一下在iOS下数字键盘限位的处理---好,废话不多说直接上代码 在用手机号登陆的时候大家有没有遇到这个问题? 就是一边想要输入到一定位数要限制输入,但是删除的时候还要能删除,今天小编遇到了这个问题,解决好半天,最终把它解决了,好了接下来给大家分享一下 相信大家都知道,输入框是用 UITextField的吧,其他的都不说了,要用textField的话实现代理方法,最重要的一点是设置他的键盘模式为

iOS: 让键盘消失的的4种方法

转自:http://leopard168.blog.163.com/blog/static/168471844201422121310352/ 在iOS app中,只要用到编辑框(UITextField)的地方,就得处理键盘消失 (dismiss keyboard). 我先后用过4种方法,来处理键盘消失的问题. 1. 通过UITextFiledDelegate,来释放第一响应者 (resignFirstResponder): 这种通过delegate释放键盘的代码如下: -(BOOL)textF

ios动态获得键盘高度,并改变对话框的位置

NSNotificationCenter:键盘出现.消失时的通知 UIKeyboardWillShowNotification;UIKeyboardDidShowNotification;UIKeyboardWillHideNotification;UIKeyboardDidHideNotification; 在要使用键盘的视图控制器中(既viewDidLoad中),接收键盘事件的通知: - (void) registerForKeyboardNotifications{ //键盘改变时候会调用

iOS开发隐藏键盘方法总结

iOS开发里键盘是经常需要打交道的地方,下面为大家带来我整理总结的几种隐藏键盘的方法. 一.隐藏自身软键盘 当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件.在点击软键盘右下角的“Return”按钮后,会触发该事件.该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件). - (IBAction)TextField_DidEndOnExit:(id)sender 

iOS学习笔记——键盘处理

在网上找到的资料比较零散,这部分学起来感觉也有点空虚,内容就只包括隐藏键盘和键盘高度两部分 隐藏键盘其实就在我学习iOS开发的第一个程序里面已经实践过了,不过当时还懵懵懂懂,现在就了解了是什么一回事,就记录一下,也额外加点内容上去. 说这个键盘的出现和隐藏是和输入框获取和失去焦点有关系,输入框获取了焦点,软键盘就会出现:输入框失去了焦点,软键盘就会消失.这个就和Android的有出入.所以要键盘消失其实很简单的一行代码就可以完成了 [nameTextField resignFirstRespon

(转载)ios关闭虚拟键盘的几种方法

在iOS应用开发中,有三类视图对象会打开虚拟键盘,进行输入操作,但如何关闭虚拟键盘,却没有提供自动化的方法.这个需要我们自己去实现.这三类视图对象分别是UITextField,UITextView和UISearchBar.这里介绍一下UITextField中关闭虚拟键盘的几种方法. (miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1753330 ) 第一种方法,使用它的委托UITextFieldDelegate中的方法textFi

iOS—收起虚拟键盘的各种方法

本文章转自—http://justcoding.iteye.com/blog/1476171 使用虚拟键盘来输入资讯,是iOS的重要互动方式之一,虚拟键盘通常会自动出现在可以编辑的UITextField或是 UITextView 的编辑事件中,叫出键盘固然容易,但是要把它收起来,可就没有这么简单,之前在 UITextField 输入结束后的收起小键盘的方式一文中,介绍了如何在编辑完成之后收起虚拟键盘,但是如果您的元件并没有对应的事件可以让你收起虚拟键盘,那又该如何做?下列我们以类似的元件 UIT

iOS textfield代理方法调用的先后顺序(转)

查看原文 今天通过自己的学习把textfield的代理方法全部罗列出来,先后调用顺序做了一下验证. 操作方法是,打开界面-->点击textField-->输入'abc'-->点击'x'清除按钮-->点击键盘'换行'-->点击'完成' log日志: 4 2 4 1 1 1 5 7 6 3 #pragma mark - textField delegate - (BOOL)textField:(UITextField *)textField shouldChangeCharact

iOS自定义数字键盘

自定义键盘实际就是设置UITextField的inputView属性,首先我们要做的是自定义一个UIView,实现键盘的样式. 自定义View代码如下: 1 #import <UIKit/UIKit.h> 2 //创建自定义键盘协议 3 @protocol My_KeyBoardDelegate <NSObject> 4 //创建协议方法 5 @required//必须执行的方法 6 - (void)numberKeyBoard:(NSInteger) number; 7 - (v