2011-09-14 16 views
5

Tengo un problema en el diseño de mi aplicación. Quiero establecer alinear verticalmente el medio de mi UITextView. Ayúdeme a configurar la alineación vertical de uitextview desde el constructor de interfaz.cómo configurar el alineamiento vertical de uitextview desde el constructor de interfaz

+0

¿qué quieres decir con vertical align.¿Deseas que tu texto en el campo de texto debería estar en el centro. – Gypsa

+0

Quiero mostrar mi texto en medio de textview –

+0

Y también hay un relleno en uitextview, quiero quitarlo –

Respuesta

7

Esto se consigue al observar los cambios en la propiedad contentSize y luego configurar contentOffset.

- (void)viewDidLoad{ 
    [super viewDidLoad]; 
    [myTextView addObserver:self forKeyPath:@"contentSize" options:(NSKeyValueObservingOptionNew) context:nil]; 
} 

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 
    UITextView *myView = object; 

    CGFloat offSet = ([myView bounds].size.height - [myView contentSize].height * [myView zoomScale])/2.0; 
    offSet = offSet < 0.0 ? 0.0 : offSet; 
    [myView setContentOffset:CGPointMake(0, -offSet) animated:NO]; 
} 
+1

Esto funciona bien para iOS 6, pero no parece funcionar para iOS 5. El UITextView parece comportarse de manera diferente. :( – Daren

+0

funciona bien en ios8 pero también necesita quitar el observador una vez que se ha completado la alineación. Agregue esta línea como última línea del método 'observeValorForKeyPath':' [tv removeObserver: self forKeyPath: @ "contentSize"]; ' –

-1
*yourtextviewname*.textAlignment=UITextAlignmentCenter; 

Usted puede hacer esto mediante la interfaz builder.Open atributos del campo de texto y establecer la alineación del texto a centro.

+2

Lo siento, eso no es malo mío, estoy utilizando UITextView y quiero configurar alinear vertical, por ejemplo, arriba, medio, fondo. Espero que esto tenga sentido. –

Cuestiones relacionadas