ios 键盘遮盖TextField的解决方法
来源:互联网 发布:淘宝在线转换工具 编辑:程序博客网 时间:2024/05/21 09:52
常常我们在做界面的时候会用到文本框输入,但当把输入文本框放的过于低,就会导致在填写信息的时候弹出的虚拟键盘遮盖输入文本框,导致看不见所输入的信息,这对于用户体验当然很不好,所以我们需要改进这一情况,方法大致就是在点击输入文本框准备输入的时候,使得文本框上移到用户能看见的地方。这方法是网上资料,或许还有别的更好的解决方法,希望大家都能发出来。
记住这里要加上<UITextFieldDelegate>,使得UITextField对象能用代理方法
当然在viewDidLoad方法中,要设置 textField.delegate = self;这样就能找到自己的代理方法实现
如下的代理方法:
上面方法中键盘高度使用了固定值216.0f,但是由于iphone机型不同,导致高度不同,所以不能简单采取固定值的方式,可以动态获取键盘的高度,然后设置该值。
参考:http://woodn-z.iteye.com/blog/1167652
比如如下的UIViewController有一个UITextField对象
@interface MyViewController : UIViewController <UITextFieldDelegate>{ UITextField *textField;}
记住这里要加上<UITextFieldDelegate>,使得UITextField对象能用代理方法
当然在viewDidLoad方法中,要设置 textField.delegate = self;这样就能找到自己的代理方法实现
如下的代理方法:
//该方法为点击输入文本框要开始输入是调用的代理方法:就是把view上移到能看见文本框的地方- (void)textFieldDidBeginEditing:(UITextField *)textField{ CGFloat keyboardHeight = 216.0f; if (self.view.frame.size.height - keyboardHeight <= textField.frame.origin.y + textField.frame.size.height) { CGFloat y = textField.frame.origin.y - (self.view.frame.size.height - keyboardHeight - textField.frame.size.height - 5); [UIView beginAnimations:@"srcollView" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:0.275f]; self.view.frame = CGRectMake(self.view.frame.origin.x, -y, self.view.frame.size.width, self.view.frame.size.height); [UIView commitAnimations]; }}//该方法为点击虚拟键盘Return,要调用的代理方法:隐藏虚拟键盘- (BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES;}//该方法为完成输入后要调用的代理方法:虚拟键盘隐藏后,要恢复到之前的文本框地方- (void)textFieldDidEndEditing:(UITextField *)textField{ [UIView beginAnimations:@"srcollView" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:0.275f]; self.view.frame = CGRectMake(self.view.frame.origin.x, 0, self.view.frame.size.width, self.view.frame.size.height); [UIView commitAnimations];}
上面方法中键盘高度使用了固定值216.0f,但是由于iphone机型不同,导致高度不同,所以不能简单采取固定值的方式,可以动态获取键盘的高度,然后设置该值。
//注册键盘出现的通知,为了动态获取键盘高度 NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; [defaultCenter addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
/** * 键盘出现触发的事件 * * @param aNotification <#aNotification description#> */- (void)keyboardWillShow:(NSNotification *)aNotification { //获取键盘的高度 NSDictionary *userInfo = [aNotification userInfo]; NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; CGRect keyboardRect = [aValue CGRectValue]; keyboardHight = keyboardRect.size.width;}
参考:http://woodn-z.iteye.com/blog/1167652
0 0
- ios 键盘遮盖TextField的解决方法
- ios 键盘遮盖
- iOS TextField收取键盘的方法
- [IOS]textField被虚拟键盘挡住解决方法
- [IOS]textField被虚拟键盘挡住解决方法
- iOS textField 回收键盘
- IOS UITextField输入 键盘遮盖
- IOS键盘遮盖问题解决办法
- ios-关闭键盘于打开键盘的方式之textField
- textField被虚拟键盘挡住的3种解决方法
- textfield的键盘适应
- 自定义textfield的键盘
- textField的键盘监听
- IOS 键盘遮住了TextField
- IOS TextField伴随键盘移动
- iOS解决TextField被键盘遮住的问题
- IOS TextField弹出键盘挡住输入框的问题
- IOS TextField弹出键盘挡住输入框的问题(续)
- HDU1257最少拦截系统
- 【夏苗苗】给你的表单加上验证
- Javascript模块化编程(一):模块的写法
- 数据库索引 类型
- 好的交互设计师是怎样成长的?
- ios 键盘遮盖TextField的解决方法
- HDU 1027 Ignatius and the Princess II 【next_permutation(a,a+n)的应用】
- JAVA字符串格式化-String.format()的使用
- Oracle数字处理函数
- 恶意抢注商标事件层出 国内知识产权保护堪忧
- 极速购吧---天天九块九包邮
- Centos下报“is not in the sudoers file”错误
- top命令
- zoj2770