原文连接:
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和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程中,我们需要控制键盘的弹出和收起、在输入结束的时候获取输入的信息,此外,我们还需要保证在键盘弹起的时候不...
我们在开发app时界面中经常会有输入框,例如用户登陆界面,一般都是UITextField,当我们点击输入框时会弹出系统键盘,这时如果不调整系统输入框,输入框可能会被键盘覆盖,这种用户体验很不友好,所以这时我们应该让...
UITextField或者UITextView放在UIScrollView上弹出键盘修改UIScrollView上移。 还是有点小小的不完美,并不影响整体使用
UITextField 文本字段控件 小Demo
UITextfield输入框限制的功能封装
iphone中的基础控件UITextField,适合初学者,主要学习UITextField的常用属性设置、text改变事件、密码输入框、输入时键盘控制、return后隐藏键盘等
实现UITextField的键盘隐藏以及为了防止键盘挡住TextField而上移下移
ios7隐藏虚拟键盘,解决键盘挡住UITextField问题
有的时候我们并不想要UITextField控件在长按或双击等动作时显示复制,粘贴的那个控件,这时就用到了gestureRecognizers这个成员变量。gestureRecognizers里面存放的是textField的行为,我们想要让TextField不响应...
在一些网站登陆界面,我们经常会见到,键盘的出现与隐藏操作,那么基于代码是如何实现的呢?下面小编写了具体代码介绍,特此分享到软件开发网平台,供大家参考 先给大家展示下效果图: 具体代码如下所示: #...
UItextField和UItextView键盘覆盖问题,可以随键盘上高的改变,自动移动父类UIview
IQKeyboardManager是一个比较常见的解决键盘遮挡UITextField/UITextView的方法,同样,底部的输入框会向上自动滚动,完成后点击“done”解除键盘。
对UITextField的类的扩展。 很好用的键盘扩展及键盘回收的使用 只要调用一句话方法 键盘随心所以
Android基础控件——EditText的自定义、高仿iOS的UITextField
WPAutoSpringKeyboard 一个为编辑区域自动弹出键盘的ViewController类
在弹出对话框(Alert dialogue)中加入登录框。即在UIAlertView中加入文字输入框(UITextField)。 注意:请在Mac下解压使用
UITextView 实现UITextField功能
通过添加UITextField类目,使用runtime实现,TextField被遮挡时视图上移效果,点击空白回收键盘,不需要写一句代码,所有TextField全拥有此功能,可以控制是否开启,上移视图,以及距keyboard距离 更新:1.解决...
iOS文本框,有时候需要用到类似炒股软件添加百分比或者数字等
iOS UITextField 扩展 密码框