Created
February 7, 2012 00:43
-
-
Save smartweb/1756232 to your computer and use it in GitHub Desktop.
iPhone开发,中文输入时弹出键盘会遮住输入框,解决方法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
实现以下三个方法,如果弹出的键盘会遮住输入框 ,整体的界面会向上移动,这样就不会遮住输入框了。自己增加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 | |
{ | |
// When the user presses return, take focus away from the text field so that the keyboard is dismissed. | |
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);//键盘高度216 | |
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]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment