#import "ViewController.h"
@interface ViewController ()
@property (nonatomic, retain) UIView *aView; /**< 键盘背地图 */
@property (nonatomic, retain) UITextField *textField; /**< 键盘 */
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor orangeColor];
[self initTextField];
}
#pragma mark 键盘演示
/**键盘演示 */
- (void)initTextField
{
self.aView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 40, self.view.frame.size.width, 40)];
self.aView.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:self.aView];
self.textField = [[UITextField alloc] initWithFrame:CGRectMake((self.view.frame.size.width - 250) / 2,5,250,30)];
self.textField.backgroundColor = [UIColor whiteColor];
self.textField.placeholder = @"请输入";
[self.aView addSubview:self.textField];
//UIKeyboardWillShow
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardwillAppear:) name:UIKeyboardWillShowNotification object:nil];
//UIKeyboardWillHide
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(UIKeyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
/** UIKeyboardWillHide */
- (void)UIKeyboardWillHide:(NSNotification *)notifation
{
[UIView animateWithDuration:0.25 animations:^{
self.aView.frame = CGRectMake(0, self.view.frame.size.height - 40, self.view.frame.size.width, 40);
}];
}
/** keyBoardwillAppear */
- (void)keyBoardwillAppear:(NSNotification *)notifation
{
NSLog(@"%@",notifation);
CGRect KeyboardFrame = [[notifation.userInfo objectForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];
NSLog(@"%@",NSStringFromCGRect(KeyboardFrame));
//UIView动画
[UIView animateWithDuration:0.25 animations:^{
self.aView.frame = CGRectMake(0 , self.view.frame.size.height - KeyboardFrame.size.height -50, self.view.frame.size.width, 50);
}];
}
/** 触摸开始的时候回收键盘 */
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[self.textField resignFirstResponder];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self forKeyPath:UIKeyboardWillShowNotification];
[[NSNotificationCenter defaultCenter] removeObserver:self forKeyPath:UIKeyboardWillHideNotification];
}