Ich habe ein Problem - wenn die Tastatur zeigen, wird mein Code die View-Frame-Größe des View-Controllers so mit den Einschränkungen festlegen, werden alle Komponenten in der richtigen Position sein. Manchmal funktioniert es jedoch wie das linke Bild, aber wenn ich diesen Ansicht-Controller von bestimmten Punkten aus betrete, sieht es wie das rechte Bild aus.self.view set frame nicht funktionieren, wenn Tastatur zeigen
und hier ist mein Code, wenn die Tastatur angezeigt erkennen ..
- (void)moveTextViewForKeyboard:(NSNotification*)aNotification
up:(BOOL)up {
NSDictionary* userInfo = [aNotification userInfo];
NSTimeInterval animationDuration;
UIViewAnimationCurve animationCurve;
CGRect keyboardEndFrame;
[[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] getValue:&animationCurve];
[[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] getValue:&animationDuration];
[[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardEndFrame];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:animationDuration];
[UIView setAnimationCurve:animationCurve];
CGRect keyboardFrame = [self.view convertRect:keyboardEndFrame toView:nil];
CGRect viewFrame = self.view.frame;
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenHeight = screenRect.size.height;
if (up) {
viewFrame.size.height = screenHeight - (keyboardFrame.size.height) - viewFrame.origin.y;
} else {
viewFrame.size.height = screenHeight;
}
[self.view setFrame:viewFrame];
[UIView commitAnimations];
}
ich hier schon seit Tagen gesucht haben ... haben noch kein Glück: (Gibt es einen Experten, der Ihnen helfen kann? Vielen Dank im Voraus.
mit Ja, das ist der richtige Weg in der Auto-Layout-Umgebung. –
Vielen Dank, Andrea, es funktioniert wie du gesagt hast. Ich lerne eine Lektion. :) –