iOS 防键盘遮挡的实例
当我们在UITextField输入数据时经常弹出键盘遮挡界面,解决方法是:在弹出键盘时将整个UIVIew向上移动,在键盘消失时,UIVIew还原。
实例代码如下:
@interfaceViewController()@property(nonatomic,strong)UITextField*tf; @end @implementationViewController -(void)viewDidLoad{ [superviewDidLoad]; self.tf=[[UITextFieldalloc]initWithFrame:CGRectMake(10,600,100,20)]; self.tf.delegate=self; self.tf.backgroundColor=[UIColorblackColor]; [self.viewaddSubview:self.tf]; } #pragmamarklifeCircle -(void)viewWillAppear:(BOOL)animated{ [superviewWillAppear:animated]; //后台切换到前台通知 [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(applicationWillEnterForeground)name:UIApplicationWillEnterForegroundNotificationobject:nil]; [[NSNotificationCenterdefaultCenter]addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [self.viewendEditing:YES]; } -(void)applicationWillEnterForeground{ [self.viewendEditing:YES]; } -(void)touchesEnded:(NSSet *)toucheswithEvent:(UIEvent*)event{ [self.viewendEditing:YES]; } #pragmamarkUITextFieldDelegate -(void)textFieldDidBeginEditing:(UITextField*)textField{ //第一个cell不往上弹输入框的位置 //if(indexPath.row!=0){ [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWillChange:)name:UIKeyboardWillChangeFrameNotificationobject:nil]; //} } -(void)textFieldDidEndEditing:(UITextField*)textField{ } #pragmamark键盘操作 -(void)keyboardWillChange:(NSNotification*)note { NSDictionary*userInfo=note.userInfo; CGFloatduration=[userInfo[@"UIKeyboardAnimationDurationUserInfoKey"]doubleValue]; CGRectkeyFrame=[userInfo[@"UIKeyboardFrameEndUserInfoKey"]CGRectValue]; //这个64是我减去的navigationbar加上状态栏20的高度,可以看自己的实际情况决定是否减去; CGFloatmoveY=keyFrame.origin.y-self.tf.frame.origin.y-self.tf.frame.size.height; NSLog(@"%f",moveY); [UIViewanimateWithDuration:durationanimations:^{ self.view.transform=CGAffineTransformMakeTranslation(0,moveY); }]; } -(void)keyboardWillHide:(NSNotification*)nsnotification { [[NSNotificationCenterdefaultCenter]removeObserver:selfname:UIKeyboardWillChangeFrameNotificationobject:nil]; [UIViewanimateWithDuration:0.2animations:^{ self.view.transform=CGAffineTransformMakeTranslation(0,0); }]; } @end
以上这篇iOS防键盘遮挡的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。