IOS TextField伴隨鍵盤移動,iostextfield
這篇文章介紹的是一個簡單而又實用的小方法。
我想對於登陸時的一些效果大家應該都不會陌生。
今天就介紹一下,當開始輸入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