Estoy tratando de hacer que mi vista de desplazamiento llegue alparte inferior de mi texto sin tener que "forzar desplazamiento". Entonces, cuando me desplazo hacia abajo, la barra de desplazamiento a la derecha se detiene antes de llegar a la parte inferior del texto restante. Luego tengo que desplazarme nuevamente con fuerza (para que la barra de desplazamiento a la derecha se encoja, revelando el texto restante). Esperemos que alguien haya encontrado esto. No quiero forzar el desplazamiento. Quiero que todo se muestre de forma limpia.
UIScrollView *theScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 568.0f)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(17.0f, 150.0f, 286.0f, 568.0f)];
label.text = @" a very large portion of text ";
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont fontWithName:@"Chalkduster" size:16.0];
label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = 0;
[label sizeToFit];
[theScroll setShowsVerticalScrollIndicator:NO];
theScroll.contentSize = CGSizeMake(theScroll.contentSize.width, label.frame.size.height);
[theScroll addSubview:label];
[self.view addSubview:theScroll];
Esto es todo en el viewDidLoad
método.
Respuestas
0 para la respuesta № 1Dos cosas no parecen estar bien.
- Usted establece la etiqueta "s
origin.y
a150
. ¿Quería que la etiqueta comenzara tan lejos de la parte superior del área de contenido de la vista de desplazamiento? - Configura la vista de desplazamiento "s
contentSize.height
ser igual a la altura de la etiqueta. Esto entra en conflicto con el n. ° 1.contentSize.height
debe ser lo suficientemente alto para todo el contenido.
Suponiendo que el n. ° 1 es correcto, el n. ° 2 debe establecerse como:
theScroll.contentSize = CGSizeMake(theScroll.contentSize.width, CGRectGetMaxY(label.frame));
Recuerde, la parte inferior de la etiqueta será su origen + su altura, no solo su altura.