Wenn die virtuelle iPad-Tastatur angezeigt wird, werden einige der Textfelder in meiner Ansicht abgedeckt. Gibt es eine Möglichkeit, den ViewController nach oben zu bewegen, wenn die Tastatur erscheint?Wie verschieben Sie die Ansicht, wenn die Tastatur im iPad angezeigt wird?
Antwort
Mein Vorschlag ist, Ihre Objekte auf einem UIScrollView
zu platzieren, dann, wenn die Tastatur angezeigt wird, können Sie scrollRectToVisible:
verwenden.
[scroller scrollRectToVisible:frame animated:YES];
Ich habe diesen Code für eine meiner Anwendung geschrieben.
Es erkennt automatisch die Position des TextField und Scroll die BaseView Dementsprechend.
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[self animateTextField:textField up:YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[self animateTextField:textField up:NO];
}
- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
CGPoint temp = [textField.superview convertPoint:textField.frame.origin toView:nil];
UIInterfaceOrientation orientation =
[[UIApplication sharedApplication] statusBarOrientation];
if (orientation == UIInterfaceOrientationPortrait){
if(up) {
int moveUpValue = temp.y+textField.frame.size.height;
animatedDis = 264-(1024-moveUpValue-5);
}
}
else if(orientation == UIInterfaceOrientationPortraitUpsideDown) {
if(up) {
int moveUpValue = 1004-temp.y+textField.frame.size.height;
animatedDis = 264-(1004-moveUpValue-5);
}
}
else if(orientation == UIInterfaceOrientationLandscapeLeft) {
if(up) {
int moveUpValue = temp.x+textField.frame.size.height;
animatedDis = 352-(768-moveUpValue-5);
}
}
else
{
if(up) {
int moveUpValue = 768-temp.x+textField.frame.size.height;
animatedDis = 352-(768-moveUpValue-5);
}
}
if(animatedDis>0)
{
const int movementDistance = animatedDis;
const float movementDuration = 0.3f;
int movement = (up ? -movementDistance : movementDistance);
[UIView beginAnimations: nil context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
if (orientation == UIInterfaceOrientationPortrait){
baseViewController.view.frame = CGRectOffset(baseViewController.view.frame, 0, movement);
}
else if(orientation == UIInterfaceOrientationPortraitUpsideDown) {
baseViewController.view.frame = CGRectOffset(baseViewController.view.frame, 0, movement);
}
else if(orientation == UIInterfaceOrientationLandscapeLeft) {
baseViewController.view.frame = CGRectOffset(baseViewController.view.frame, 0, movement);
}
else {
baseViewController.view.frame = CGRectOffset(baseViewController.view.frame, 0, movement);
}
[UIView commitAnimations];
}
}
Danke !! für Ihren Code :) – Guerrix
funktioniert es gr8..thanks. – Developer
Danke für die Kommentare Jungs. – ValayPatel
Do ValayPatel Code "if" Anweisung if(animatedDis>0 || !up)
für Zustand, wenn nach oben = NO, sonst die verschobene Ansicht ist immer bei vorheriger Position ändern.
Ich glaube, dass der ursprüngliche Code animatedDis eine Eigenschaft sein soll, und daher wird der Wert> 0 beibehalten, wenn die Bearbeitung beendet wird, wodurch die Ansichten an ihre ursprüngliche Position animiert werden. – Noam
- 1. UIModalPresentationFormSheet auf dem iPad. So passen Sie die UITextView-Höhe an, wenn die Tastatur angezeigt wird
- 2. So ändern Sie die Ansicht entsprechend der Tastatur show/hide, wenn die Tastatur bereits angezeigt wird
- 3. Scrollbar, wenn die Tastatur angezeigt wird?
- 4. UIPopoverView wird verzerrt, wenn Tastatur angezeigt wird + iPad
- 5. Bildanzeige ausblenden, wenn die Tastatur angezeigt wird, und anzeigen, wenn die Tastatur ausgeblendet wird
- 6. Meine Tabellenansicht wird automatisch skaliert, wenn die Tastatur angezeigt wird
- 7. Wie verschiebe ich eine Ansicht, wenn die Tastatur in React Native angezeigt wird?
- 8. Android-Ansicht im sichtbaren Bereich behalten, wenn die Tastatur auftaucht
- 9. Die Navigationsleiste wird transparent, wenn die Tastatur geöffnet wird
- 10. transform3d abgehackt, wenn die mobile Tastatur angezeigt wird
- 11. Wie wird die iPhone SMS-Ansicht erstellt?
- 12. DialogFragment wird immer skaliert, wenn die Tastatur geöffnet wird
- 13. Verhindert, dass die Standardtastatur angezeigt wird, wenn UITextField gedrückt wird
- 14. Wie öffne ich die Ansicht mit der Tastatur, wenn die Ansicht bereits geladen ist?
- 15. Android: Nur Cursor im Editiertext anzeigen, wenn Tastatur angezeigt wird
- 16. iPad - verstecken Sie die Tastatur für das Textfeld nicht
- 17. Benutzerdefinierte iPad-Tastatur, die wie die Systemtastaturen aussieht
- 18. UILabel wird weder im Simulator noch im iPad angezeigt
- 19. WKWebView Benachrichtigung, wenn die Ansicht tatsächlich angezeigt wird
- 20. Wie wird die Modulladeadresse im Überwachungsfenster angezeigt?
- 21. UITextView scrollt nicht, wenn Tastatur angezeigt wird
- 22. Wie wird die Touch-Tastatur angezeigt, wenn die Maus angeschlossen ist?
- 23. Wie kann man die Zurück-Taste drücken, wenn die virtuelle Tastatur angezeigt wird?
- 24. Swift: Ändern Sie automatische Layout-Einschränkungen, wenn die Tastatur angezeigt wird
- 25. So verhindern Sie, dass die Android-Navigationsleiste angezeigt wird, nachdem die Softtastatur angezeigt wird
- 26. Wie wird eine Ansicht angezeigt, die den Bildschirm nicht ausfüllt?
- 27. Anpassen der Benutzeroberfläche, wenn die Tastatur für UITextField in einem einfachen UIVIew ohne Bildlauf angezeigt wird?
- 28. Behandeln Sie die verdeckte Tastatur einer anderen App auf der geteilten iPad-Ansicht (iOS 9 Multitasking)
- 29. Wie wird das gesamte Layout nach oben bewegt, wenn die Tastatur angezeigt wird?
- 30. Warum CGAffineTransformRotate im automatischen Layout die animierte Ansicht verschieben?
Ich bin nett neu dazu, hast du ein einfaches Beispiel darüber, wie das geht? Danke! – Guerrix
Danke ich schätze es wirklich. – Guerrix