這篇文章介紹的是一個簡單而又實用的小方法。 我想對於登陸時的一些效果大家應該都不會陌生。 今天就介紹一下,當開始輸入TextField文本時鍵盤彈出TextField伴隨鍵盤移動的實現。 先看一下演示效果 我們對TextFiel進行約束。約束內容如下⬇️ 約束結束後,我們需要做一個很重要的是,就是把 ...
這篇文章介紹的是一個簡單而又實用的小方法。
我想對於登陸時的一些效果大家應該都不會陌生。
今天就介紹一下,當開始輸入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