UITextField被键盘遮挡问题解决方法
来源:互联网 发布:汽车改装模拟器软件 编辑:程序博客网 时间:2024/05/29 10:38
文连接:
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];
- }
以下转自 http://janedoneway.iteye.com/blog/1575250
另外我自己做了一点修改:在实际用的时候,键盘消失原来的控件并没有回归都原来的位置,而是上移了20个像素,我估计是因为顶部Bar的原因,只要将22行代码改成如下就可以了:
CGRect rect = CGRectMake(0.0f, 20.0f, self.view.frame.size.width, self.view.frame.size.height);
- UITextField被键盘遮挡问题解决方法
- UITextField被键盘遮挡问题
- UITextField被弹出键盘遮挡
- uitextfield键盘遮挡问题
- 键盘遮挡问题(UITextField)
- iOS---UITextField代理方法解决键盘遮挡文本框
- uitextfield 键盘遮挡时上移
- 解决键盘遮挡UITextField问题
- ios键盘遮挡UITextField问题
- 如何处理键盘遮挡UITextField
- 键盘遮挡问题解决办法
- UITableView上的UITextField防止被键盘遮挡
- RN中的键盘遮挡问题解决
- iOS UITextfield 键盘遮挡解决代码
- UI 03 关于UITextField键盘遮挡问题
- iOS UITextField,UITextView键盘遮挡问题
- UITextField键盘弹出遮挡的解决
- iOS 键盘弹出遮挡UITextField解决方法
- Linux IP Routing
- trigger updating函数带参数用法;
- gcc 编译时带lpthread
- Jungle Roads
- 开机同步备份重要资料
- UITextField被键盘遮挡问题解决方法
- AfxGetApp->GetMainWnd()与AfxGetMainWnd
- MFC中的OnDraw和OnPaint的对比
- winform系统退出提示代码
- 将现有myeclipse项目移植到maven环境下
- POJ 2312 Battle City 优先多列+bfs
- 浅谈C++容器(一)
- 获取文件扩展名一个简单的方法
- log4j配置祥解