iphone - Cómo agregar una función de desplazamiento a un UILabel
objective-c xcode (2)
Puedes agregar tu UILabel en un UIScrollView como este y también puedes hacer esto ---
scrollView.backgroundColor = [UIColor clearColor];
UILabel * label = [[UILabel alloc] init];
[label setNumberOfLines:0];
label.text=[detailDict valueForKey:@"ABC"];
[label setFont:[UIFont fontWithName:@"Georgia" size:16.0]];
CGSize labelsize=[label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(250, 1000.0) lineBreakMode:UILineBreakModeWordWrap];
int y=0;
label.frame=CGRectMake(38, y, 245, labelsize.height);
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:[UIColor whiteColor]];
scrollView.showsVerticalScrollIndicator = NO;
y+=labelsize.height;
[scrollView setContentSize:CGSizeMake(200,y+50)];
[scrollView addSubview:label];
[label release];
Aquí Y se utiliza para aumentar o disminuir el tamaño de la etiqueta como el texto.
En Xcode, creé una UILabel que se auto-clasificará según la cantidad de líneas de texto que coloco. Pero no quiero que la altura de UILabel exceda un cierto límite (240 en mi ejemplo), el código es el siguiente:
NSString *text = @"imagine this is a huge wall of text/n/n/n"
UILabel *myLabel = [[UILabel alloc] init];
[myLabel setNumberOfLines:0];
CGSize labelSize = [text sizeWithFont:myLabel.font constrainedToSize:CGSizeMake(280, 240) lineBreakMode:myLabel.lineBreakMode];
myLabel.frame = CGRectMake(0, 0, 280, labelSize.height);
Esto funciona bien cuando mi texto está dentro de aproximadamente 10-15 líneas. Pero si pongo algo así como 40 líneas de texto, las líneas adicionales de texto irán más allá de mi UILabel y se cortarán.
¿Cómo puedo agregar una función de desplazamiento a myLabel para que myLabel aún tenga una altura máxima de 240, y simplemente puedo desplazarme hacia abajo para ver esas líneas adicionales de texto en myLabel?
Utilice UITextView ( reference ).
Está diseñado para hacer exactamente eso. Desactiva la edición, y obtienes una etiqueta desplazable.