iOS
发布时间:2022-03-31 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了UITextField被键盘遮挡问题解决方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
文连接:
http://www.devdiv.com/thread-70159-1-1.html
实现以下三个方法,如果弹出的键盘会遮住输入框 ,整体的界面会向上移动,这样就不会遮住输入框了。自己增加UITextFieldDelegate委托。
只适合iPhone,如果想要支持iPad,只要把216改成iPad上面键盘的高度即可。
- - (void)keyboardWillShow:(Nsnotification *)noti
- {
-
- //键盘的高度
- float height = 216.0;
- CGRect frame = self.view.frame;
- frame.size = CGSizeMake(frame.size.width, frame.size.height - height);
- [UIView beginAnimations:@"Curl"context:nil];
- [UIView setAnimationDuration:0.30];
- [UIView setAnimationDelegate:self];
- [self.view setFrame:frame];
- [UIView commitAnimations];
- }
-
- - (BOOL)textFieldShouldReturn:(UITextField *)textField
-
- NSTimeInterval animationDuration = 0.30f;
- [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
- [UIView setAnimationDuration:animationDuration];
- CGRect rect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height);
- self.view.frame = rect;
- [UIView commitAnimations];
- [textField resignFirstResponder];
- return YES;
- - (void)textFieldDidBeginEdiTing:(UITextField *)textField
- CGRect frame = textField.frame;
- int offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0);
- NSTimeInterval animationDuration = 0.30f;
- [UIView beginAnimations:@"ResizeForKeyBoard" context:nil];
- [UIView setAnimationDuration:animationDuration];
- float width = self.view.frame.size.width;
- float height = self.view.frame.size.height;
- if(offset > 0)
- {
- CGRect rect = CGRectMake(0.0f, -offset,width,height);
- self.view.frame = rect;
- }
- [UIView commitAnimations];
- }
以下转自 http://janedoneway.iteye.com/blog/1575250
另外我自己
做了一点
修改: 在实际用的时候,
键盘消失原来的控件并没有回归都原来的位置,而是上移了20个像素,我估计
是因为顶部Bar的原因,只要将22行
代码改成如下就可以了: CGRect rect = CGRectMake(0.0f,20.0f,self.view.frame.size.width,self.view.frame.size.height
);
大佬总结
以上是大佬教程为你收集整理的UITextField被键盘遮挡问题解决方法全部内容,希望文章能够帮你解决UITextField被键盘遮挡问题解决方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。