#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]; }