iOS软键盘遮挡元素时得处理办法
来源:互联网 发布:数据库与管理信息系统 编辑:程序博客网 时间:2024/06/05 04:32
这几天在写自己的iOS项目时候遇到了问题:
当软键盘没有弹起时,页面看起来还比较正常。当点击了text field时,软键盘弹出,就有将text field遮挡的风险
在网上查阅了一些资料之后,自己做了下总结:
1.在对应view的controller的.h文件中添加<UITextFieldDelegate>
#import <UIKit/UIKit.h>@interface WYILoginViewController : UIViewController<UITextFieldDelegate>@end后来测试将<UITextFieldDelegate>删除,发现也没有报错,只是后面有警告
2.在controller的实现文件的viewDidLoad方法中增加:
- (void)viewDidLoad{ [super viewDidLoad]; self.emailTextField.delegate = self;}
注:emailTextField是页面text field通过拖拽生成的outlet变量
这句很重要,如果不写这句后面的实现的UITextFieldDelegate的方法都无法执行;其次,第1步的<UITextFieldDelegate>如果不写,这里会警告。
3.实现UITextFieldDelegate
-(void)textFieldDidBeginEditing:(UITextField *)textField{ NSTimeInterval animationDuration = 0.20f; [UIView beginAnimations:@"ResizeForKeyboard" context:nil]; [UIView setAnimationDuration:animationDuration]; self.view.frame = CGRectMake(0.0f, -kOFFSET_FOR_KEYBOARD, self.view.frame.size.width, self.view.frame.size.height); [UIView commitAnimations];}-(BOOL)textFieldShouldReturn:(UITextField *)textField{ [self.emailTextField resignFirstResponder]; return YES;}-(void)textFieldDidEndEditing:(UITextField *)textField{ NSTimeInterval animationDuration = 0.2f; [UIView beginAnimations:@"ResizeForKeyboard" context:nil]; [UIView setAnimationDuration:animationDuration]; self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); [UIView commitAnimations];}
注:kOFFSET_FOR_KEYBOARD 我在头部做过声明:
#define kOFFSET_FOR_KEYBOARD 150.0
这个高度是键盘弹起的高度,从网上查来的。
4.添加点击背景,键盘消失的方法:
- (IBAction)backgroundTap:(id)sender { [self.view endEditing:YES];}
这步要注意在storyboard中将view的Custom Class->Class改成UIControl,并拖拽到backgroundTap方法:
页面整体网上移动了150px,也可以根据自己的实际需求,改变上升的高度。
当然,我是为了做个备忘,如果有写错的地方,大家可以留言告知。
更多精彩请关注微信公众号:兔贩子
0 0
- iOS软键盘遮挡元素时得处理办法
- 软键盘遮挡edittext处理
- IOS 软键盘不遮挡UITextField方法
- HTML5 表单元素在 Android 下被软键盘遮挡
- iOS 键盘遮挡处理办法(不用键盘高度计算)
- 软键盘遮挡
- 软键盘遮挡
- Android 软键盘遮挡
- 软键盘遮挡问题
- 软键盘遮挡问题
- Android开发,在Activity启动时,默认隐藏软键盘。和遮挡Edittext时的处理
- 关于软键盘的遮挡布局问题几点处理
- 软键盘遮挡登录按钮的处理方法
- IOS中输入框被软键盘遮挡的解决办法
- IOS中输入框被软键盘遮挡的解决办法
- IOS中输入框被软键盘遮挡的解决办法
- ios解决软键盘遮挡输入框问题
- IOS中输入框被软键盘遮挡的解决办法
- C#_02_变量
- tim trgo 的使用方法
- Java集合类——Collection接口(传智播客毕老师视频讲解)
- GDAL直接操纵内存中的影像数据的办法
- 黑马程序员_16可变参数
- iOS软键盘遮挡元素时得处理办法
- 统计某个目录(含子目录)下所有java源文件中实际代码行数
- 福布斯:Hadoop——你不得不了解的大数据工具
- Encountered 1 errors during the transfer
- FAT文件系统解析(一) 引导扇区、FAT表及根目录区分析
- Unity3d中使用Profiler看到的一项"WaitForTargetFPS"费资源过高的原因
- 快速打开我的电脑属性
- 菜鸟学习npapi插件
- 五种Toast详解