HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了UITextField被键盘遮挡问题解决方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
文连接: 
http://www.devdiv.com/thread-70159-1-1.html 

实现以下三个方法,如果弹出的键盘会遮住输入框 ,整体的界面会向上移动,这样就不会遮住输入框了。自己增加UITextFieldDelegate委托。 
只适合iPhone,如果想要支持iPad,只要把216改成iPad上面键盘的高度即可。 
C代码  

UITextField被键盘遮挡问题解决方法

  1. @H_675_18@@H_675_18@- (void@H_675_18@)keyboardWillShow:(Nsnotification *)noti  
  2. @H_675_18@{          
  3. @H_675_18@        //键盘输入的界面调整        @H_675_18@  
  4. //键盘的高度@H_675_18@  
  5. @H_675_18@        float@H_675_18@ height = 216.0;                  
  6. @H_675_18@        CGRect frame = self.view.frame;          
  7. @H_675_18@        frame.size = CGSizeMake(frame.size.width, frame.size.height - height);          
  8. @H_675_18@        [UIView beginAnimations:@"Curl"@H_675_18@context:nil];//动画开始          @H_675_18@  
  9. @H_675_18@        [UIView setAnimationDuration:0.30];             
  10. @H_675_18@        [UIView setAnimationDelegate:self];            
  11. @H_675_18@        [self.view setFrame:frame];           
  12. @H_675_18@        [UIView commitAnimations];           
  13. @H_675_18@}  
  14. @H_675_18@  
  15. @H_675_18@- (BOOL@H_675_18@)textFieldShouldReturn:(UITextField *)textField   
  16. @H_675_18@    // When the user presses return, take focus away from the text field so that the keyboard is dismissed.        @H_675_18@  
  17. @H_675_18@    NSTimeInterval animationDuration = 0.30f;          
  18. @H_675_18@    [UIView beginAnimations:@"ResizeForKeyboard"@H_675_18@ context:nil];          
  19. @H_675_18@    [UIView setAnimationDuration:animationDuration];          
  20. @H_675_18@    CGRect rect = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height);          
  21. @H_675_18@    self.view.frame = rect;          
  22. @H_675_18@    [UIView commitAnimations];          
  23. @H_675_18@    [textField resignFirstResponder];  
  24. @H_675_18@    return@H_675_18@ YES;          
  25. @H_675_18@- (void@H_675_18@)textFieldDidBeginEdiTing:(UITextField *)textField  
  26. @H_675_18@        CGRect frame = textField.frame;  
  27. int@H_675_18@ offset = frame.origin.y + 32 - (self.view.frame.size.height - 216.0);//键盘高度216@H_675_18@  
  28. @H_675_18@        NSTimeInterval animationDuration = 0.30f;                  
  29. @H_675_18@        [UIView beginAnimations:@"ResizeForKeyBoard"@H_675_18@ context:nil];                  
  30. @H_675_18@        [UIView setAnimationDuration:animationDuration];  
  31. float@H_675_18@ width = self.view.frame.size.width;                  
  32. float@H_675_18@ height = self.view.frame.size.height;          
  33. @H_675_18@        if@H_675_18@(offset > 0)  
  34. @H_675_18@        {  
  35. @H_675_18@                CGRect rect = CGRectMake(0.0f, -offset,width,height);                  
  36. @H_675_18@                self.view.frame = rect;          
  37. @H_675_18@        }          
  38. @H_675_18@        [UIView commitAnimations];                  
  39. @H_675_18@}  

以下转自   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,请注明来意。