UITextField控件处理键盘弹出时遮住输入框的问题
2014-05-22 17:57
344 查看
原文连接:
http://www.devdiv.com/thread-70159-1-1.html
实现以下三个方法,如果弹出的键盘会遮住输入框 ,整体的界面会向上移动,这样就不会遮住输入框了。自己增加UITextFieldDelegate委托。
只适合iPhone,如果想要支持iPad,只要把216改成iPad上面键盘的高度即可。
另外我自己做了一点修改:
在实际用的时候,键盘消失原来的控件并没有回归都原来的位置,而是上移了20个像素,我估计是因为顶部Bar的原因,只要将22行代码改成如下就可以了:
CGRect rect = CGRectMake(0.0f, 20.0f, self.view.frame.size.width, self.view.frame.size.height);
http://www.devdiv.com/thread-70159-1-1.html
实现以下三个方法,如果弹出的键盘会遮住输入框 ,整体的界面会向上移动,这样就不会遮住输入框了。自己增加UITextFieldDelegate委托。
只适合iPhone,如果想要支持iPad,只要把216改成iPad上面键盘的高度即可。
- (void)keyboardWillShow:(NSNotification *)noti { //键盘输入的界面调整 //键盘的高度 float height = 216.0; CGRect frame = self.view.frame; frame.size = CGSizeMake(frame.size.width, frame.size.height - height); [UIView beginAnimations:@"Curl"context:nil];//动画开始 [UIView setAnimationDuration:0.30]; [UIView setAnimationDelegate:self]; [self.view setFrame:frame]; [UIView commitAnimations]; } - (BOOL)textFieldShouldReturn:(UITextField *)textField { // When the user presses return, take focus away from the text field so that the keyboard is dismissed. NSTimeInterval animationDuration = 0.30f; [UIView beginAnimations:@"ResizeForKeyboard" context:nil]; [UIView setAnimationDuration:animationDuration]; CGRect rect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height); self.view.frame = rect; [UIView commitAnimations]; [textField resignFirstResponder]; return YES; } - (void)textFieldDidBeginEditing:(UITextField *)textField { CGRect frame = textField.frame; int offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0);//键盘高度216 NSTimeInterval animationDuration = 0.30f; [UIView beginAnimations:@"ResizeForKeyBoard" context:nil]; [UIView setAnimationDuration:animationDuration]; float width = self.view.frame.size.width; float height = self.view.frame.size.height; if(offset > 0) { CGRect rect = CGRectMake(0.0f, -offset,width,height); self.view.frame = rect; } [UIView commitAnimations]; }
另外我自己做了一点修改:
在实际用的时候,键盘消失原来的控件并没有回归都原来的位置,而是上移了20个像素,我估计是因为顶部Bar的原因,只要将22行代码改成如下就可以了:
CGRect rect = CGRectMake(0.0f, 20.0f, self.view.frame.size.width, self.view.frame.size.height);
相关文章推荐
- UITextField控件处理键盘弹出时遮住输入框的问题。
- UITextField控件处理键盘弹出时遮住输入框的问题。
- UITextField控件处理键盘弹出时遮住输入框的问题。
- UITextField控件处理键盘弹出时遮住输入框的问题
- [UI控件问题] UITextField控件处理键盘弹出时遮住输入框的问题
- UITextField控件处理键盘弹出时遮住输入框的问题
- UITextField控件处理键盘弹出时遮住输入框的问题(Andy)
- IOS开发键盘弹出时遮住输入框的问题
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- EditText弹出软键盘遮住输入框问题
- EditText弹出软键盘遮住输入框问题
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- UITextField 文本字段控件及解决键盘遮住View的问题(实例)
- 滚动视图 解决弹出键盘遮住输入框的问题 实例解析
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- EditText弹出软键盘遮住输入框问题
- IOS开发键盘弹出时遮住输入框的问题的一种解决方法。
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
- AppCompatActivity 去掉标题栏和EditText弹出软键盘遮住输入框问题
- IOS开发键盘弹出时遮住输入框的问题