2009-01-10 11 views
10

Derecha, estoy tratando de obtener una etiqueta con texto (ya hecho, obviamente), que se desplaza por la pantalla.UILabel redimensionable que se desplaza por la pantalla

El texto que se ingresa en la etiqueta se hace mediante un UITextField y un UIButton. Esto se actualiza bien.

Pero estoy tratando de hacer que UILabel cambie de tamaño de acuerdo con la cantidad de entrada de texto, de modo que toda la cantidad de texto se desplaza por la pantalla.

Este es el código que tengo en este momento para el sello de desplazamiento:

[lblMessage setText: txtEnter.text]; 

CABasicAnimation *scrollText; 

scrollText=[CABasicAnimation animationWithKeyPath:@"position.x"]; 
scrollText.duration = 3.0; 
scrollText.repeatCount = 10000; 
scrollText.autoreverses = NO; 
scrollText.fromValue = [NSNumber numberWithFloat:500]; 
scrollText.toValue = [NSNumber numberWithFloat:-120.0]; 

[[lblMessage layer] addAnimation:scrollText forKey:@"scrollTextKey"]; 

El problema es que a veces se inicia se desplaza en el centro de la pantalla, ya veces desaparece antes de que haya totalmente ido acrosss.

También corta texto debido a que la etiqueta tiene un tamaño ... No sé cómo cambiar esto.

Gracias de antemano.

Dom

Respuesta

7

creo que algo similar a the solution for this question funcionaría para este caso.

Puede incrustar UILabel en UIScrollView, con UIScrollView configurado al tamaño máximo de la etiqueta que desea mostrar en la pantalla a la vez. El UIScrollView necesitaría tener sus indicadores de desplazamiento desactivados usando sus propiedades showHorizontalScrollIndicator y showsVerticalScrollIndicator. En un cambio de texto, se podría hacer lo siguiente:

[lblMessage setText: txtEnter.text]; 
[lblMessage sizeToFit]; 
scrollView.contentSize = lblMessage.frame.size; 

seguido por el código de animación panorámica como se describe en la pregunta anterior-vinculada, con el marco a ser desplazada a ser el extremo derecho de la UILabel. Esto haría que el texto se desplace a una velocidad constante a través de la etiqueta. Si desea que la etiqueta se desplace nuevamente al principio, puede usar los métodos UIView setAnimationRepeatAutoreverses: y setAnimationRepeatCount: al principio de su bloque de animación.

2

¡El cambio de tamaño de la etiqueta funcionó muy bien, gracias!

Ahora, he puesto la etiqueta en la vista de desplazamiento y tengo eso apareciendo ... pero ahora no estoy seguro de las animaciones exactas para agregar a eso. Probé algunos de los que estaban en el enlace que me diste, pero no están funcionando.

EDITAR: No importa, ya lo tengo todo funcionando.

CGPointMake (x, x) es lo que necesitaba para contentOffset.

Cuestiones relacionadas