2016-08-25 3 views
0

Ich versuche, diesen Code zu verwendenAnsicht bewegt sich nicht, wenn Tastatur vorhanden ist iOS

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    NSLog(@"%f",self.view.frame.origin.y); 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.25f]; 
    CGRect frame = self.view.frame; 
    frame.origin.y =frame.origin.y -204; 
    [self.view setFrame:frame]; 
    [UIView commitAnimations]; 
} 


- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.25f]; 
    CGRect frame = self.view.frame; 
    frame.origin.y = frame.origin.y + 204; 
    [self.view setFrame:frame]; 
    [UIView commitAnimations]; 
} 

nach oben sehen, wenn Tastatur vorhanden ist, aber dies führt wie folgt aus: enter image description here

wird diese :

enter image description here

Kann nicht herausfinden, warum und wenn es hat etwas mit der Navigationsleiste oder Einschränkungen zu tun.

+0

Ich werde die self.view nicht durcheinander bringen, sondern ich werde eine neue Ansicht mit all diesen Textfeldern erstellen und den Rahmen ändern. –

+0

Und verschieben Sie es, um die Navbar abzudecken? Will es ausprobieren –

+0

Mein Vorschlag ist es, TableView zu verwenden, da es dieses Verhalten effektiv behandelt. Sie können mehrere Zellen verwenden oder Sie können eine Zelle mit einer Ansicht verwenden, die alle diese Elemente enthält. –

Antwort

0

Warum nicht diese schöne Bibliothek namens IQKeyboardManager verwenden. Fügen Sie es einfach durch Pods/manuell und lassen Sie es Ihre Arbeit tun

0

Art von was Alexey Sobolevsky sagte, machte den Trick. Im Grunde genommen musste ich sie in eine Scrollview einfügen und eine Einschränkung von der Scroll-Ansicht zu dem darunter liegenden Objekt hinzufügen und dann alle Ansichten, die Textfelder enthalten, in diese Scrollview einfügen. Dies hat alles richtig gemacht.

0

Fügen Sie zuerst die Bildlaufansicht hinzu. Dann schreiben Sie den folgenden Code.

//When return key press then bring the view back 
-(BOOL)textFieldShouldReturn:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
    self.scrlView.contentOffset = CGPointMake(0, 0); 
    return YES; 
} 

//When the text field begin editing then moves the view up 
-(void)textFieldDidBeginEditing:(UITextField *)textField{ 
    self.scrlView.contentOffset = CGPointMake(0, 30); 
} 

//When ext field end editing then bring the view back 
-(void)textFieldDidEndEditing:(UITextField *)textField{ 

    self.scrlView.contentOffset = CGPointMake(0, 0); 
} 
+0

Vielen Dank für Ihre freundliche Information.Bitte klicken Sie auf den Pfeil nach oben, wenn es Ihnen helfen wird. – Sanjukta

Verwandte Themen