2010-09-10 3 views
8

Die Standardhöhe eines UITextField mit Rahmenstil UITextBorderStyleRoundedRect ist 31px. Für eine iPad App möchte ich ein UITextField mit einer Höhe von 60px machen und den Text vertikal zentrieren, so dass es gut aussieht (standardmäßig wird der Text nur ein paar Pixel unter dem oberen Rand des UITextField gezeichnet).UITextField: Erhöht und positioniert den Eingabetext vertikal zentriert

Wenn ich Sie wie folgt vor ...

UITextField *txtLogin = [[UITextField alloc] initWithFrame:CGRectMake(200,200,300,60)]; 
txtLogin.borderStyle = UITextBorderStyleRoundedRect; 

... das Ergebnis sieht wie folgt aus: http://grab.by/6jRc

Wie Sie sehen können, ist die Eingabe von Text nicht vertikal zentriert. Ich habe versucht, eine Lösung zu finden und herausgefunden, dass ich nur meine eigene benutzerdefinierte Klasse von UITextField erben und die - (CGRect)textRectForBounds:(CGRect)bounds Methode überschreiben muss. Diese Methode wird jedoch nie aufgerufen und nach this link gibt es einen Fehler in Apples API. Deshalb suche ich nach Alternativen, die funktionieren.

Was wäre eine gute Lösung, um dieses Problem zu lösen und eine korrekte vertikale Ausrichtung für den Eingabetext zu erreichen?

Antwort

21

[txtLogin setContentVerticalAlignment: UIControlContentVerticalAlignmentCenter];

+0

danke, das hat für mich funktioniert. – kiteloop