获取键盘的高度变化

来源:互联网 发布:js实现5秒倒计时 编辑:程序博客网 时间:2024/05/18 12:31

有时需要view的位置根据键盘的高度变化而变化,就需要实时获取键盘的高度。查找资料都说使用

UIKeyboardWillChangeFrameNotification 这个通知可以改变,但是试了各种版本,最后还是用自己的方法解决了。方法如下:

UIKIT_EXTERN NSString *const UIKeyboardWillShowNotification;

UIKIT_EXTERN NSString *const UIKeyboardDidShowNotification; 

UIKIT_EXTERN NSString *const UIKeyboardWillHideNotification; 

UIKIT_EXTERN NSString *const UIKeyboardDidHideNotification;

上边是注册键盘通知的四种类型


注册键盘通知

[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotificationobject:nil];

    [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWillHide:)name:UIKeyboardWillHideNotificationobject:nil];


UIKIT_EXTERN NSString *const UIKeyboardFrameBeginUserInfoKey     //获取键盘开始的高度

UIKIT_EXTERN NSString *const UIKeyboardFrameEndUserInfoKey      //获取键盘结束的高度

上边是获取键盘高度的两种类型。


-(void) keyboardWillShow:(NSNotification *)notification

{

    NSValue *value = [notification.userInfoobjectForKey:UIKeyboardFrameEndUserInfoKey]; //如果使用UIKeyboardFrameBeginUserInfoKey,则不能实时获取键盘的高度,得到的高度总是上一次。

    CGSize keyboardSize = [valueCGRectValue].size;

//此处对view处理

}


- (void)keyboardWillHide:(NSNotification *)notification {

    //此处对view处理

}


0 0
原创粉丝点击