Ich habe eine exampleUIViewController mit seiner xib
Datei erstellt. Die mainView
enthält einige textFields
. Wenn ein textField
geklickt wird (die Bearbeitung beginnen), zeige ich die Tastatur mit Animation:UIViewController Breite ändern, wenn die Tastatur angezeigt wird
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
self.view.frame = self.initialFrame;
[textField resignFirstResponder];
[UIView animateWithDuration:0.25 animations:^
{
CGRect newFrame = [view frame];
newFrame.origin.y -= PORTRAIT_KEYBOARD_HEIGHT;
[view setFrame:newFrame];
}completion:^(BOOL finished)
{
}];
return YES;
}
Dann in den textFieldShouldReturn
:
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
self.view.frame = self.initialFrame;
[textField resignFirstResponder];
[UIView animateWithDuration:0.25 animations:^
{
CGRect newFrame = [view frame];
newFrame.origin.y += PORTRAIT_KEYBOARD_HEIGHT;
[view setFrame:newFrame];
}completion:^(BOOL finished)
{
}];
return YES;
}
Im viewDidLoad
stellte ich die self.initialFrame
als:
self.intialFrame = self.view.frame;
Das Problem ist, dass, wenn die Tastatur angezeigt wird, die mainView
Breite ändern und größer werden.
Was ist los mit dem, was ich getan habe? Warum habe ich dieses Problem nur mit xib
und nicht auch mit einem UIViewController
im storyboard
erstellt? Wie kann ich dieses Problem lösen?