键盘上移

-(void)defaultCenter{
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
  
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
  
}
//键盘出现text上移
-(void)keyboardWillShow:(NSNotification *)notification{
  
  //获取键盘高度,在不同设备上,以及中英文下是不同的
  CGFloat kbHeight = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height;
  
  //计算出键盘顶端到inputTextView panel底端的距离(加上自定义的缓冲距离INTERVAL_KEYBOARD)
  CGFloat offset = (self.addressText.frame.origin.y+self.addressText.frame.size.height + (100 * kY)) - (self.view.frame.size.height - kbHeight);
  
  // 取得键盘的动画时间,这样可以在视图上移的时候更连贯
  double duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
  
  //将视图上移计算好的偏移
  if(offset > 0) {
      [UIView animateWithDuration:duration animations:^{
          self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height);
      }];
  }
}

///键盘消失事件
- (void) keyboardWillHide:(NSNotification *)notify {
  // 键盘动画时间
  double duration = [[notify.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
  
  //视图下沉恢复原状
  [UIView animateWithDuration:duration animations:^{
      self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
  }];
}  ```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容