iOS5中当键盘输入法切换到中文时,键盘高度由216增加到252像素。这一变化将遮住输入框。如何才能解决这一问题呢?
在iOS5中,新增有notification(UIKeyboardWillChangeFrameNotification)可以用来监测键盘frame的变化。在iOS4中,可以通过UIKeyboardWillShowNotification以及UIKeyboardWillHideNotification来监测键盘的显示与隐藏事件。综合处理下,可以用以下方法解决:
-
#ifndefIOS_VERSION
-
#defineIOS_VERSION[[[UIDevicecurrentDevice]systemVersion]floatValue]
-
#endif
在viewdidload中注册监测事件:
-
if(IOS_VERSION<5.0){
-
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWillChangeFrame:)name:UIKeyboardWillShowNotificationobject:nil];
-
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWillChangeFrame:)name:UIKeyboardWillHideNotificationobject:nil];
-
}else{
-
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWillChangeFrame:)name:UIKeyboardWillChangeFrameNotificationobject:nil];
-
}
在dealloc中移除监测事件:
-
if(IOS_VERSION<5.0){
-
[[NSNotificationCenterdefaultCenter]removeObserver:selfname:UIKeyboardWillShowNotificationobject:nil];
-
[[NSNotificationCenterdefaultCenter]removeObserver:selfname:UIKeyboardWillHideNotificationobject:nil];
-
}else{
-
[[NSNotificationCenterdefaultCenter]removeObserver:selfname:UIKeyboardWillChangeFrameNotificationobject:nil];
-
}
事件处理函数:
-
-(void)keyboardWillChangeFrame:(NSNotification*)notification{
-
if(!isDisplayFaceBox){
-
#if__IPHONE_OS_VERSION_MAX_ALLOWED>=__IPHONE_3_2
-
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone){
-
#endif
-
#if__IPHONE_OS_VERSION_MIN_REQUIRED>=__IPHONE_3_2
-
NSValue*keyboardBoundsValue=[[notificationuserInfo]objectForKey:UIKeyboardFrameEndUserInfoKey];
-
#else
-
NSValue*keyboardBoundsValue=[[notificationuserInfo]objectForKey:UIKeyboardBoundsUserInfoKey];
-
#endif
-
CGRectkeyboardBounds;
-
[keyboardBoundsValuegetValue:&keyboardBounds];
-
-
-
-
-
NSIntegeroffset=480-keyboardBounds.origin.y;
-
CGRectlistFrame=CGRectMake(0,offset,320,377-offset);
-
-
[UIViewbeginAnimations:@"anim"context:NULL];
-
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
-
[UIViewsetAnimationBeginsFromCurrentState:YES];
-
[UIViewsetAnimationDuration:0.3];
-
-
[tableviewbosetFrame:listFrame];
-
-
faceButton.hidden=NO;
-
keyboardButton.hidden=YES;
-
-
[keyboardScrollViewsetContentOffset:CGPointMake(0,offset)animated:NO];
-
-
[selfscrollToBottomAnimated:NO];
-
-
[UIViewcommitAnimations];
-
-
#if__IPHONE_OS_VERSION_MAX_ALLOWED>=__IPHONE_3_2
-
}
-
#endif
-
}
-
}
-
分享到:
相关推荐
标题"iOS解决输入框被键盘遮挡问题"直指这一常见痛点,描述指出了解决方案——在键盘弹出时,界面向上移动以确保输入框始终可见。以下将详细阐述如何处理这个问题。 首先,我们需要理解iOS中的键盘管理机制。当用户...
标题“iOS 键盘遮挡输入框万能解决方案(多个输入框)”针对的就是这个问题,提供了一种解决多个输入框被键盘遮挡的通用方法。描述中提到的“OC 键盘遮挡输入框万能解决方案(多个输入框)”表明这是一个基于...
为了解决这个问题,iOS提供了多种方法来处理键盘弹出时视图的自动调整,以确保输入框始终可见。以下是一些相关的知识点和实现策略: 1. **UIKeyboardNotification**:苹果提供了UIKeyboardWillShowNotification和...
源码https://github.com/MachelleZhang/Keyboard,这是一个输入框随键盘移动的效果(Objective-C版本),写的效果,只是用的oc,欢迎参考学习,不足的地方请指正。
所以只要在输入完毕后模拟一下这个“滚动”的操作,就能解决问题了。 如果是用vue写的: <input type="text" @blur="fixScroll" placeholder="请输入xxx"/> //methods中添加: fixScroll() { window....
总之,处理iOS键盘遮挡输入框的问题,开发者可以通过监听键盘通知、使用第三方库、调整父视图内容偏移量或利用UIStackView等方法来优化用户体验。关键在于理解屏幕空间的管理和键盘事件的处理,以确保用户在输入时能...
IOS 键盘挡住输入框的问题解决办法 IOS 键盘挡住输入框的问题是一个常见的问题,在 iOS 开发中,我们经常遇到这种情况:当用户开始输入时,键盘弹出,挡住输入框,使用户无法看到实时的输入情况。这对用户体验非常...
在iOS开发中,自定义密码输入框是一种常见的需求,它允许开发者根据应用的特定设计风格创建独特的用户体验。本文将深入探讨如何在iOS中实现自定义密码输入框,并提供相关技术要点。 首先,我们来理解一下iOS系统...
在IT行业中,尤其是在移动应用开发或者网页设计领域,"键盘遮挡问题"是一个常见的用户体验问题。当用户在手机或平板设备上使用输入框(textField)时,如果键盘弹出,可能会遮挡住输入框,导致用户无法看到正在输入的...
在iOS开发中,用户在带有输入框的界面中输入时,键盘弹出可能会遮挡部分视图,尤其是手机屏幕尺寸较小的情况下,这个问题尤为明显。为了提高用户体验,我们需要实现输入框跟随键盘自动上移的功能。本篇文章将详细...
为了解决这个问题,开发者需要实现一种机制来监听键盘的显示与隐藏,并适当地调整输入框的位置。"ios-监听键盘不覆盖输入框.zip"中的示例可能包含了处理这种情况的代码实现,如`textfieldKeyboardFit`文件。 首先,...
5. **键盘管理**:控制键盘的显示、隐藏,以及方向键的定制,例如设置“下一步”跳转到其他输入框。 6. **安全设计**:对密码进行加密存储,遵循Apple的安全指南,避免明文保存。 总的来说,这个自定义组件是iOS...
标题"ios-键盘遮挡输入框处理.zip"所提及的问题正是针对这种情况,而压缩包中的"SCAutoMove"可能是提供了解决方案的一个类或者框架。下面我们将详细讨论如何处理键盘遮挡输入框的问题,并探讨可能的解决方案。 首先...
这个"IOS应用源码——点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容"压缩包中的源码,就是专门针对这一场景的解决方案。 首先,我们需要理解苹果提供的Auto Layout和Size Classes机制...
为了解决这个问题,iOS提供了键盘管理的机制,使得视图能够自动适应键盘的出现,将输入框保持在可视范围内。这份"点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容"的iOS应用源码,就展示...
标题所描述的“IOS应用源码Demo”正是为了解决这个问题,它展示了如何在键盘弹出时,自动上移输入框的整个视图,确保内容可见。这种功能在各种需要用户输入的界面,如注册、登录、评论等场景中十分常见。 首先,...
在IT行业中,自定义键盘密码输入框是一种常见的用户界面组件,尤其在移动应用或网页设计中,用于增强安全性,如支付、登录等场景。本文将深入探讨如何实现一个具有随机键盘功能的仿支付宝密码输入框,并讲解其核心...
标题"ios-键盘不覆盖UITextField和UITextView输入框.zip"所提及的问题正是针对这一常见场景,即如何在键盘弹出时避免遮挡输入框,保持良好的用户体验。描述中提到的解决方案虽有“小小的不完美”,但整体上是可行的...
本篇文章将详细探讨如何解决这一问题,主要关注如何在iOS 7中隐藏虚拟键盘以及防止键盘遮挡输入框。 首先,我们需要理解问题的根源。当用户点击UITextField时,系统会自动显示虚拟键盘,以便用户输入文本。然而,...
这个"IOS应用源码之点击输入框弹出键盘时,输入框的整个视图向上移动以便用户可以看到输入的内容 .rar"文件中,就包含了实现这种功能的具体源代码。 首先,我们需要理解苹果提供的Auto Layout和Size Classes机制。...