Created
January 19, 2014 14:35
-
-
Save turboza/8505763 to your computer and use it in GitHub Desktop.
[iOS]
Ready made Code for moving up the View up when you bring up the Keyboard
Ref: http://stackoverflow.com/questions/1126726/how-to-make-a-uitextfield-move-up-when-keyboard-is-present
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
#define kOFFSET_FOR_KEYBOARD 80.0 | |
-(void)keyboardWillShow { | |
// Animate the current view out of the way | |
if (self.view.frame.origin.y >= 0) | |
{ | |
[self setViewMovedUp:YES]; | |
} | |
else if (self.view.frame.origin.y < 0) | |
{ | |
[self setViewMovedUp:NO]; | |
} | |
} | |
-(void)keyboardWillHide { | |
if (self.view.frame.origin.y >= 0) | |
{ | |
[self setViewMovedUp:YES]; | |
} | |
else if (self.view.frame.origin.y < 0) | |
{ | |
[self setViewMovedUp:NO]; | |
} | |
} | |
-(void)textFieldDidBeginEditing:(UITextField *)sender | |
{ | |
if ([sender isEqual:myTextField]) | |
{ | |
//move the main view, so that the keyboard does not hide it. | |
if (self.view.frame.origin.y >= 0) | |
{ | |
[self setViewMovedUp:YES]; | |
} | |
} | |
} | |
//method to move the view up/down whenever the keyboard is shown/dismissed | |
-(void)setViewMovedUp:(BOOL)movedUp | |
{ | |
[UIView beginAnimations:nil context:NULL]; | |
[UIView setAnimationDuration:0.3]; // if you want to slide up the view | |
CGRect rect = self.view.frame; | |
if (movedUp) | |
{ | |
// 1. move the view's origin up so that the text field that will be hidden come above the keyboard | |
// 2. increase the size of the view so that the area behind the keyboard is covered up. | |
rect.origin.y -= kOFFSET_FOR_KEYBOARD; | |
rect.size.height += kOFFSET_FOR_KEYBOARD; | |
} | |
else | |
{ | |
// revert back to the normal state. | |
rect.origin.y += kOFFSET_FOR_KEYBOARD; | |
rect.size.height -= kOFFSET_FOR_KEYBOARD; | |
} | |
self.view.frame = rect; | |
[UIView commitAnimations]; | |
} | |
- (void)viewWillAppear:(BOOL)animated | |
{ | |
// register for keyboard notifications | |
[[NSNotificationCenter defaultCenter] addObserver:self | |
selector:@selector(keyboardWillShow) | |
name:UIKeyboardWillShowNotification | |
object:nil]; | |
[[NSNotificationCenter defaultCenter] addObserver:self | |
selector:@selector(keyboardWillHide) | |
name:UIKeyboardWillHideNotification | |
object:nil]; | |
} | |
- (void)viewWillDisappear:(BOOL)animated | |
{ | |
// unregister for keyboard notifications while not visible. | |
[[NSNotificationCenter defaultCenter] removeObserver:self | |
name:UIKeyboardWillShowNotification | |
object:nil]; | |
[[NSNotificationCenter defaultCenter] removeObserver:self | |
name:UIKeyboardWillHideNotification | |
object:nil]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment