键盘不遮挡文本输入框

2016-07-23  本文已影响40人  哎呦我去叫什么呢

//首先要在viewDidLoad里面注册监听事件
[[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.promptText.frame.origin.y+self.promptText.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);
    }];
}

}

///键盘消失事件

上一篇 下一篇

猜你喜欢

热点阅读