美文网首页
键盘上移

键盘上移

作者: 哎呦我去叫什么呢 | 来源:发表于2016-12-15 12:52 被阅读11次

    -(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);
      }];
      }

    相关文章

      网友评论

          本文标题:键盘上移

          本文链接:https://www.haomeiwen.com/subject/hetgmttx.html