iOS 防键盘遮挡的实例
更新时间:2018年01月15日 09:40:41 作者:键盘舞者113
下面小编就为大家分享一篇iOS 防键盘遮挡的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
当我们在UITextField输入数据时经常弹出键盘遮挡界面,解决方法是:在弹出键盘时将整个UIVIew向上移动,在键盘消失时,UIVIew还原。
实例代码如下:
@interface ViewController ()<UITextFieldDelegate> @property(nonatomic,strong)UITextField* tf; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.tf = [[UITextField alloc]initWithFrame:CGRectMake(10, 600, 100, 20)]; self.tf.delegate = self; self.tf.backgroundColor = [UIColor blackColor]; [self.view addSubview:self.tf]; } #pragma mark life Circle -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //后台切换到前台通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground)name:UIApplicationWillEnterForegroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [self.view endEditing:YES]; } - (void)applicationWillEnterForeground{ [self.view endEditing:YES]; } -(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES]; } #pragma mark UITextFieldDelegate -(void)textFieldDidBeginEditing:(UITextField *)textField{ //第一个cell不往上弹输入框的位置 // if(indexPath.row!=0){ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil]; // } } -(void)textFieldDidEndEditing:(UITextField *)textField{ } #pragma mark 键盘操作 - (void)keyboardWillChange:(NSNotification *)note { NSDictionary *userInfo = note.userInfo; CGFloat duration = [userInfo[@"UIKeyboardAnimationDurationUserInfoKey"] doubleValue]; CGRect keyFrame = [userInfo[@"UIKeyboardFrameEndUserInfoKey"] CGRectValue]; //这个64是我减去的navigationbar加上状态栏20的高度,可以看自己的实际情况决定是否减去; CGFloat moveY = keyFrame.origin.y -self.tf.frame.origin.y-self.tf.frame.size.height; NSLog(@"%f",moveY); [UIView animateWithDuration:duration animations:^{ self.view.transform = CGAffineTransformMakeTranslation(0, moveY); }]; } - (void)keyboardWillHide:(NSNotification *)nsnotification { [[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillChangeFrameNotification object:nil]; [UIView animateWithDuration:0.2 animations:^{ self.view.transform = CGAffineTransformMakeTranslation(0, 0); }]; } @end
以上这篇iOS 防键盘遮挡的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
iOS App开发中扩展RCLabel组件进行基于HTML的文本布局
RCLabel组件基于CoreText框架,可以将HTML标记的文本内容转为富文本视图,这里我们就来解读如何在iOS App开发中扩展RCLabel组件进行基于HTML的文本布局:2016-07-07Xcode 下删除Provisioning Profiles文件详细介绍
这篇文章主要介绍了Xcode 下删除Provisioning Profiles文件详细介绍的相关资料,需要的朋友可以参考下2016-12-12解决SDK注入权限验证安卓正常,IOS出现config fail的方法
这篇文章主要介绍了解决SDK注入权限验证安卓正常,IOS出现config fail的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-06-06IOS 开发之实现取消tableView返回时cell选中的问题
这篇文章主要介绍了IOS 开发之实现取消tableView返回时cell选中的问题的相关资料,希望通过本文能实现大家想要的功能,需要的朋友可以参考下2017-09-09
最新评论