天天看点

IOS学习-随着键盘高度变化自动调节界面内容

(网上摘抄并进行总结) 首先说明下键盘显示消息和隐藏消息分别为:UIKeyboardWillShowNotification、UIKeyboardWillHideNotification;这个两个消息系统会自动发送,前提是自己注册接收此消息。 1、注册键盘显示消息通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 2、注册键盘隐藏消息通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 3、键盘显示的时候处理函数: -(void)keyboardWillShow:(NSNotification*)notif{     NSDictionary* userInfo=[notif userInfo];     NSValue* avalue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];     CGRect keyboardRect=[avalue CGRectValue];     int height=keyboardRect.size.height;//获取键盘高度     } 4、键盘隐藏的时候处理函数: -(void)keyboardWillHide:(NSNotification*)notif{     } 5、移除注册的键盘显示和隐藏消息(放在dealloc中,软件退出系统会自动调用): -(void)dealloc{     [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];     [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; }

总结:使用此方法非常灵活的根据键盘的变化调节界面的内容高度和大小,以前固定使用键盘高度216的时候,总会出现键盘高度和界面不能灵活搭配的情况,有时候使用216键盘高度可以让界面和键盘之间衔接很正常,但是在使用不同类型键盘的时候发现键盘高度降低了,而我界面的高度调节的时候依然使用216键盘高度,这样界面效果就很差,后来了解到内部消息机制来获取键盘高度,使用后发现原先存在的问题都解决了。