2010-09-10 8 views
8

La altura predeterminada de UITextField con estilo de borde UITextBorderStyleRoundedRect es 31px. Para una aplicación para iPad, me gustaría hacer un UITextField con una altura de 60px y colocar el texto verticalmente centrado para que se vea bien (de manera predeterminada, el texto se dibuja solo unos pocos píxeles debajo del borde superior del UITextField).UITextField: Aumenta el tamaño y coloca el texto de entrada centrado verticalmente

Si hago lo siguiente ...

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

... el resultado se parece a esto: http://grab.by/6jRc

Como se puede ver, el texto de entrada no está centrada verticalmente. Traté de encontrar una solución y descubrí que solo tenía que heredar mi propia clase personalizada de UITextField y anular el método - (CGRect)textRectForBounds:(CGRect)bounds. Sin embargo, este método nunca se llama y de acuerdo con this link hay un error en la API de Apple. Por lo tanto, estoy buscando alternativas que funcionen.

¿Cuál sería una buena solución para resolver este problema y lograr una alineación vertical correcta para el texto de entrada?

Respuesta

21

[txtLogin setContentVerticalAlignment: UIControlContentVerticalAlignmentCenter];

+0

gracias, esto funcionó para mí. – kiteloop

Cuestiones relacionadas