原文连接:
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)弹出键盘时,有时由于键盘遮挡,输入框会被隐藏在键盘下方,导致用户无法看到正在输入的内容。为了解决这个问题,iOS提供了多种方法来处理键盘弹出时视图的自动调整,以...
通过上述方法,我们可以创建一个名为“完美Demo”的应用示例,它演示了如何优雅地处理键盘弹出时输入框被遮挡的问题。这个zip文件中的代码应该包含了实现这些功能的完整示例,开发者可以参考学习并根据自己的项目...
标题"iOS解决输入框被键盘遮挡问题"直指这一常见痛点,描述指出了解决方案——在键盘弹出时,界面向上移动以确保输入框始终可见。以下将详细阐述如何处理这个问题。 首先,我们需要理解iOS中的键盘管理机制。当用户...
当用户点击输入框(UITextField或UITextView)以输入内容时,键盘的弹出可能会遮挡输入框,导致用户无法清晰看到正在输入的信息。为了解决这个问题,iOS提供了键盘管理的机制,使得视图能够自动适应键盘的出现,将...
iOS项目开发中经常出现键盘弹出遮挡输入框问题,这个问题的处理方法可以分为两部分:文本框输入完整的响应过程和键盘的弹出与收起。 首先,我们需要控制UITextField和UITextView的输入输出,需要借助其对应的代理...
在移动应用开发中,尤其是Android或iOS平台,经常会遇到一个问题:当用户在界面中的一个输入框(EditText在Android,UITextField或UITextView在iOS)中输入时,弹出的虚拟软键盘可能会遮挡到下方的其他输入框或者...
当用户需要在文本输入框(UITextField或UITextView)中输入时,弹出的键盘可能会遮挡到输入框,导致用户体验下降。在Swift中,这个问题可以通过一句巧妙的代码来解决。本教程将详细介绍如何处理这个常见问题。 首先...
综上所述,"ios-键盘上弹出控件.zip"这个压缩包可能包含了关于如何在iOS应用中处理键盘弹出、自定义输入视图以及键盘交互的相关代码示例。通过学习和理解这些知识点,开发者可以构建更符合用户习惯、更高效的输入...
这个"IOS应用源码——点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容"压缩包中的源码,就是专门针对这一场景的解决方案。 首先,我们需要理解苹果提供的Auto Layout和Size Classes机制...
我们在开发app时界面中经常会有输入框,例如用户登陆界面,一般都是UITextField,当我们点击输入框时会弹出系统键盘,这时如果不调整系统输入框,输入框可能会被键盘覆盖,这种用户体验很不友好,所以这时我们应该让...
在iOS应用开发中,用户界面的设计与交互是至关重要的,特别是在处理输入框(UITextField或UITextView)时。当用户点击输入框以输入内容时,键盘的弹出可能会遮挡部分屏幕,导致用户无法看到他们正在输入的信息。为了...
在iOS开发中,当用户在含有输入框(UITextField或UITextView)的界面中进行输入时,弹出的键盘经常会遮挡到输入框,这给用户体验带来了不便。标题"ios-键盘遮挡输入框处理.zip"所提及的问题正是针对这种情况,而...
在iOS应用开发中,经常会遇到一个用户体验上的问题:当用户点击屏幕上的文本输入框(UITextField或UITextView)时,弹出的键盘会遮挡部分视图,导致用户无法看到正在编辑的内容。标题所描述的“IOS应用源码Demo”...
当用户需要在UITextField或UITextView中输入信息时,弹出的键盘可能会遮挡住这些元素,导致用户体验下降。`IQKeyboardManager`就是为了解决这个问题而诞生的一个第三方库,尤其在Swift开发中,它是一个广泛使用的...
在iOS应用开发中,自定义弹出视图输入框是一种常见的需求,特别是在需要用户输入信息但又不希望完全切换到新界面的情况下。标题"ios-自定义弹出视图输入框.zip"暗示了这个压缩包可能包含了一个实现这种功能的示例...
在iOS开发中,特别是在iOS 7及更高版本中,用户界面设计的一个常见问题是虚拟键盘弹出时会遮挡UITextField或UITextView,导致用户无法看到正在输入的文本。本篇文章将详细探讨如何解决这一问题,主要关注如何在iOS 7...
为`UITextField`设置约束,使其底部距离父视图的安全区域有一定的间距,这样当键盘弹出时,布局系统会自动调整`UITextField`的位置。 总之,通过监听`UITextField`的编辑状态和键盘的通知,我们可以有效地管理和...
当用户需要在文本输入框(如UITextField或UITextView)中输入时,键盘会自动弹出。但有时我们需要自定义键盘的行为,例如,当用户点击屏幕其他区域时,键盘应该自动收起。这可以通过实现UITextField或UITextView的...