2014-11-19 6 views
5

ich diesen Code haben eine Breite Einschränkung eines UITextFieldUITextField Breite Einschränkung animieren

self.myTextFieldWidthConstraint.constant = 200 
UIView.animateWithDuration(2, delay: 0.0, options: UIViewAnimationOptions.CurveLinear, animations: {() -> Void in 
    self.viewContainer.layoutIfNeeded() 
}, completion: nil) 

Es funktioniert gut, das einzige Problem zu animieren, ist, dass, wenn es Text in das Textfeld ein, während der Animation schrumpft in Zeichenbreite und passt sich dann wieder der richtigen Größe an. Der Platzhaltertext hat nicht das gleiche Problem. Hier

ist ein gif: http://makeagif.com/mr4u1D

+0

Haben Sie Ihren Text mit drawRect ziehen? – Antoine

+0

Ich glaube nicht, dass Sie die Animation des Textes von der UITextField-Animation trennen können. Überprüfen Sie diese Frage für eine Problemumgehung: http://stackoverflow.com/questions/17025624/fade-uitxtfield-text – Pintouch

+0

Ich kann dieses Problem nicht reproduzieren, siehe http://makeagif.com/XZjc6u – Thomas

Antwort

0

Fahim, können Sie den Text Skalierung verhindern, indem die Ersthelfer ausscheid, bevor Sie die Breitenänderung animieren, zum Beispiel mit:

[self.myTextField resignFirstResponder] 

oder allgemeiner:

[self.view endEditing:YES] 
0

Dies passiert, weil Feld bereits während der Animation fokussiert ist. Meine Vermutung ist, dass Sie Ihre Animation in tun:

func textFieldDidBeginEditing(textField: UITextField) 

Aber Sie sollten es tun, anstatt in:

func textFieldShouldBeginEditing(textField: UITextField) -> Bool