- 浏览: 79824 次
- 性别:
- 来自: 武汉
最新评论
-
woainike:
hhb19900618 写道兄弟 我没理解 _subThree ...
performSelectorOnMainThread 和detachNewThreadSelector区别. -
hhb19900618:
兄弟 我没理解 _subThreed = [NSThread ...
performSelectorOnMainThread 和detachNewThreadSelector区别. -
woainike:
hhb19900618 写道你好 我想问一下: //下载结束, ...
performSelectorOnMainThread 和detachNewThreadSelector区别. -
hhb19900618:
你好 我想问一下: //下载结束,刷新 [self pe ...
performSelectorOnMainThread 和detachNewThreadSelector区别.
背景:
ios5之前,iphone上的键盘的高度是固定为216.0px高的,中文汉字的选择框是悬浮的,所以不少应用都将此高度来标注键盘的高度(包括米聊也是这么做的)。
可是在ios5中,键盘布局变了,尤其是中文输入时,中文汉字选择框就固定在键盘上方,这样就使得原本与键盘紧密贴合的界面视图被中文汉字选择框给覆盖住了。一方面影响了界面的美观,另一方面,如果被覆盖的部分就是文本输入框的话,用户就无法看到输入的内容了。因此这个问题就必须得解决了。
解决方法:
其实在一开始使用216.0px这个固定值来标注键盘的高度就是错误的。因为在ios3.2以后的系统中,苹果就提供了键盘使用的api以及demo程序——“KeyboardAccessory”。
处理键盘事件的正确方法是这样的:(包括获取键盘的高度以及键盘弹出和消失动画的时间)
1)在要使用键盘的视图控制器中,接收键盘事件的通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; // 键盘高度变化通知,ios5.0新增的 #ifdef __IPHONE_5_0 float version = [[[UIDevice currentDevice] systemVersion] floatValue]; if (version >= 5.0) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil]; } #endif
2)然后添加键盘事件的处理代码:
获取到当前keyboard的高度以及动画时间,然后对视图进行对应的操作即可。
#pragma mark - #pragma mark Responding to keyboard events - (void)keyboardWillShow:(NSNotification *)notification { /* Reduce the size of the text view so that it's not obscured by the keyboard. Animate the resize so that it's in sync with the appearance of the keyboard. */ NSDictionary *userInfo = [notification userInfo]; // Get the origin of the keyboard when it's displayed. NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; // Get the top of the keyboard as the y coordinate of its origin in self's view's coordinate system. The bottom of the text view's frame should align with the top of the keyboard's final position. CGRect keyboardRect = [aValue CGRectValue]; // Get the duration of the animation. NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]; NSTimeInterval animationDuration; [animationDurationValue getValue:&animationDuration]; // Animate the resize of the text view's frame in sync with the keyboard's appearance. [self moveInputBarWithKeyboardHeight:keyboardRect.size.height withDuration:animationDuration]; } - (void)keyboardWillHide:(NSNotification *)notification { NSDictionary* userInfo = [notification userInfo]; /* Restore the size of the text view (fill self's view). Animate the resize so that it's in sync with the disappearance of the keyboard. */ NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]; NSTimeInterval animationDuration; [animationDurationValue getValue:&animationDuration]; [self moveInputBarWithKeyboardHeight:0.0 withDuration:animationDuration]; }
3)在视图控制器消除时,移除键盘事件的通知:
[[NSNotificationCenter defaultCenter] removeObserver:self];
ps:
ios5隐藏功能分享——“字典”功能(英英字典):
在任何输入框中选中一个英文单词,此时会有选择项“复制”,“删除”...等,还有一个向右的箭头,点击这个向右的箭头后,就会出现“定义”选项,点击这个“定义”按钮即会弹出这个英语单词的英文解释。
发表评论
-
个人网站建立了,后期数据移步www.rbbtsn0w.com
2013-09-04 23:00 1466个人网站建立了,后期数据移步www.rbbtsn0w.com -
UIRefreshControl for Tableview or TableViewController
2013-06-26 00:06 1268@interfaceViewController ( ... -
About search your address on MKMapView.
2013-06-09 22:47 1402When you have address it's a s ... -
针对UIBarButtonItem 下面的backbutton,一个很简单自定义方式。
2013-06-06 22:23 1273如果只需要用图片替换原来的back button,不需要里面 ... -
Custom your view and load in code. It's difference viewcontrolller.
2013-03-20 15:52 877You need to load it using t ... -
Xcode, git and .DS_Store
2012-11-28 21:23 1443On trying to merge two git b ... -
git for windows
2012-11-21 10:51 1198bulid 环境 scp 提交的命令 ... -
无聊的测试。release后还需要removeallobjects?
2012-11-14 16:42 1774#import <UIKit/UIKit.h> ... -
cookie观察
2012-10-24 12:51 840NSHTTPCookieStora ... -
iOS6对于shouldAutorotateToInterfaceOrientation的改动以及其他一些窗口相关细节
2012-10-11 11:40 3077OS6正式版发布当天博主我就更新了,随后也更新了对应的X ... -
Mac os 命令
2012-09-22 11:43 828打开终端输入命令:defaults writ ... -
DisMiss Keyboard,自定义的工具类
2012-09-17 17:15 1233// // Keyboard.h // Cust ... -
实效API
2012-08-02 12:04 1887iOS6 之后 presentModa ... -
APP 图片比例和名称规范 ,最新iPhone5比例
2012-07-25 21:10 2847从icon说起命名方法,举例 iPhone & ... -
The Icon and Default Images
2012-07-25 21:10 852The icon.png imag ... -
xcode的各个版本的下载地址
2012-03-29 10:51 2007现在进入apple的developer网站,默认只提供最 ... -
越狱开发
2012-03-23 18:07 0环境需要: Mac OS X 1 ... -
杂乱的草稿纸Cloud
2012-03-21 14:06 0NSAutoreleasePool *pool = [[ ... -
IP Address
2012-03-14 17:39 1010再来一篇,获取本地IP,三种方法: (1)在Day ... -
Copy Functions
2012-03-06 15:47 1272Copy Functions 在一般 ...
相关推荐
标题"iOS解决输入框被键盘遮挡问题"直指这一常见痛点,描述指出了解决方案——在键盘弹出时,界面向上移动以确保输入框始终可见。以下将详细阐述如何处理这个问题。 首先,我们需要理解iOS中的键盘管理机制。当用户...
本项目“iOS-聊天键盘封装”旨在提供一个完整的解决方案,以实现一个功能丰富的聊天输入工具,包括对emoji表情的支持、大表情展示以及语音输入等功能。这个项目是用Objective-C编写的,这是一门强大的面向对象编程...
总之,JHLicenseKeyboard是一个针对车牌号输入的自定义键盘解决方案,它简化了iOS应用中此类键盘的开发流程。通过学习和使用这个库,开发者可以提升应用的用户体验,同时也能了解到自定义键盘的设计和实现原理。
标题"ios键盘遮挡问题"直指一个常见的用户体验难题:当用户在TextFiled或TextView中输入文字时,弹出的键盘可能会遮挡屏幕下方的内容,使得用户无法查看或编辑他们正在输入的信息。这个问题在iPhone等屏幕较小的设备...
在iOS开发中,用户在与UITextField或UITextView交互时,会自动弹出系统键盘以便...在实际项目中,应根据具体场景选择最适合的解决方案。通过学习和实践,开发者可以熟练掌握这些技巧,为用户提供更加流畅的操作体验。
总的来说,这个项目提供了一个实用的解决方案,使得iOS应用在键盘弹出时,能够平滑地调整界面布局,保持良好的用户体验。通过学习和理解这个项目,开发者可以更好地掌握Auto Layout、Size Classes以及键盘事件处理,...
QMUI iOS 是一个开源项目,专门设计用于提升iOS应用程序用户界面(UI)开发的效率。这个框架由腾讯QQ团队打造,旨在提供一套高效、稳定、易用的UI组件和工具,帮助开发者快速构建美观且一致的用户界面。QMUI iOS 的...
"ios-自定义可变数字键盘.zip" 文件提供的就是一个这样的解决方案,它可以帮助开发者创建一个可定制的、只显示数字的输入键盘。 自定义键盘的基本原理是利用iOS的UIInputView或UIKeyboardType作为基础,通过自定义...
为了解决这个问题,Swift社区提供了一些优秀的解决方案,其中“YJKeyBoard”是一个小巧而强大的库,只需一行代码就能有效地处理键盘遮挡问题。 YJKeyBoard是专门为Swift开发的工具,主要功能是自动管理键盘的显示与...
在iOS应用开发中,键盘管理是一项...总的来说,这个源码包提供了一个全面的解决方案,帮助开发者更好地管理和优化iOS应用中的键盘交互。通过学习和使用这些代码,开发者可以提升其应用的用户体验,使其更加专业和完善。
HTML5的数字键盘软键盘就是这样一种解决方案。 1. HTML5与数字键盘: HTML5是超文本标记语言(HTML)的最新版本,增加了许多新的特性和API,使得Web开发更为强大和灵活。在创建数字键盘软键盘时,HTML5的特性如`...
它的设计注重用户体验,力求在视觉上和功能上接近原生的iOS键盘。 jQuery是一个广泛使用的JavaScript库,它简化了HTML元素的选择、操作、事件处理以及Ajax交互等任务。在这个项目中,jQuery被用来监听输入框的焦点...
`ios-高仿微信表情键盘.zip`这个资源包显然提供了这样的解决方案,由开发者`ongfei`在GitHub上分享。让我们深入探讨一下这个项目可能包含的关键知识点。 1. **自定义键盘实现**: iOS平台允许开发者创建自定义键盘...
在iOS开发中,隐藏键盘是一项常见的需求,尤其在用户完成输入后或点击其他元素时,为了提高用户体验,开发者通常会需要让键盘自动收起。本教程将深入探讨如何在iPhone应用中实现这一功能,结合代码示例和文档,帮助...
本资源"IOS应用源码——自定义数字键盘.zip"正好提供了这样一个解决方案,让我们详细探讨一下这个主题。 首先,该压缩包中的"clkeypad.jpg"可能是自定义数字键盘的预览图,展示了设计样式和布局。通常,这种键盘会...
这个“ios应用源码之可扩展的输入框 2018127”项目可能提供了这样一个自定义输入框的解决方案。下面我们将详细探讨相关的iOS编程知识点。 首先,我们要了解iOS中的文本输入控件。基本的输入控件是UITextField,它...
"ios-YCXTextViewKeyboard.zip"是一个解决方案,它是一个用Swift编写的自定义TextView,可以智能地根据键盘的高度变化调整自己的位置,同时根据输入的内容动态改变输入框的高度,最多显示四行文字。 这个项目的核心...
QMUI iOS是一个致力于提高项目UI开发效率的解决方案,其设计目的是用于辅助快速构建一个本身基本设计还原效果的iOS项目,同时利用自身提供的丰富控件和兼容处理,让开发者能专注不管是新项目的创造,还是已有项目的...
在这个场景中,描述中提到的“封装好的数字键盘控件”就是一种这样的解决方案。 首先,我们要理解的是,手机操作系统(如Android或iOS)通常会默认提供一套完整的键盘供用户输入文本。然而,这些键盘可能不完全符合...
IQKeyboardManager是由Hitesh Raj Bhansali创建的开源库,它在iOS应用中提供了一个便捷的解决方案,用于避免键盘弹出时遮挡输入视图。该库通过监听键盘事件自动管理输入框(UITextField和UITextView)的位置,当键盘...