2012-03-18 24 views
5

Tengo una UITextView y tiene un margen raro en la parte superior, no estoy seguro de lo que está causando esto. Aquí está la foto, el fondo es de color naranja:UITextView margen extraño en la parte superior?

enter image description here

aquí es mi código relevante:

textViewTest = [[UITextView alloc] initWithFrame:CGRectMake(135, 0, 150, 68)]; 
[textViewTest setContentInset:UIEdgeInsetsZero]; 
[textViewTest setUserInteractionEnabled:NO]; 
[textViewTest setBackgroundColor:[UIColor orangeColor]]; 
[textViewTest setTextColor:[UIColor whiteColor]]; 
//[textViewTest setFont:[UIFont fontWithName:@"MuseoSans-500" size:12.0]]; 
[textViewTest setText:@"Spooky (rename)\nCreated: 4/10/11\nUpload Youtube\nDelete | Favorite"]; 

Lo que quiero es el texto en UITextView (textViewTest) para no tener ningún espacio de la parte superior (margen). Actualmente, hay como 8-10 px desde la parte superior de la naranja, y luego comienza el texto.

+0

es que en una celda? – Lunayo

+0

Sí, está en una UITableViewCell – 0xSina

+0

por lo que desea alinear la vista naranja igual que la vista de color rojo? – Lunayo

Respuesta

19

Si sólo desea mover el texto, intente

[textViewTest setContentInset:UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>)]; 

Cuando un número positivo mueve el bastidor hacia el medio, un negativo lo mueve desde el medio. Por ejemplo, [textViewTest setContentInset:UIEdgeInsetsMake(-5, 0, 5,0)], moverá el texto 5 píxeles hacia arriba.

+0

Esta solución es buena, pero ¿por qué sucede? Por alguna razón, en iOS7 los controles tienen un margen de alrededor de 40 píxeles sin ninguna razón. – bashan

+0

@bashan para el margen de 40 píxeles, debe hacer esto: http://stackoverflow.com/questions/18931934/blank-space-at-top-of-uitextview-in-ios-7 – strange

+0

Gracias. Lo solucioné de esta manera. Me preguntaba por qué es eso y por qué es tan difícil de controlar ... – bashan

-1

Trate el tamaño de su vista de texto para adaptarse a su texto: [textViewTest sizeToFit];

+0

nop, no funciona. – 0xSina

-1

Creo que desea alinear el color naranja vista misma que la vista en color rojo. ¿Cuál es el marco de la vista de color rojo? Creo que es el problema del marco.

por qué no usar la vista de color rojo y como

textViewTest = [[UITextView alloc] initWithFrame:CGRectMake(135, 
                  [redView frame].origin.y, 
                  150, 68)]; 
+0

Lo que quiero es que el texto en UITextView (textViewTest) no tenga ningún espacio desde la parte superior (margen). Actualmente, hay como 8-10 px desde la parte superior de la naranja, y luego comienza el texto. – 0xSina

+0

¡oh! Supongo que lo que quieres es alineación vertical. y no hay una manera fácil de alineación de texto vertical en UITextView, consulte este enlace http://imagineric.ericd.net/2011/03/10/ios-vertical-aligning-text-in-a-uitextview/. O puede cambiarlo a UITextField y agregarlo a una vista. Y establezca el 'contentVerticalAlignment' en' UIControlContentVerticalAlignmentCenter' – Lunayo

2

En viewDidLoad añadir:

self.automaticallyAdjustsScrollViewInsets = NO; 
Cuestiones relacionadas