Estoy tratando de mostrar un largo fragmento de texto dentro de un UILabel en una línea.
El UILabel es una subvista de UIScrollView para que yo pueda desplazarse y ver toda la UILabel.

Mi problema es que la sizeToFit método sólo parcialmente las obras.

textLabel.attributedText = attributedString;
textLabel.numberOfLines = 1;
[textLabel sizeToFit];
textScrollView.contentSize = CGSizeMake(textLabel.frame.size.width, textLabel.frame.size.height);

La UIScrollView tamaño del contenido se presenta lo suficientemente grande como para mostrar toda la UILable, pero para una línea como:

así que voy a tratar de compartir algunos de ellos aquí de vez en cuando».

La UILabel muestra:

así que voy a tratar de compartir som…

¿Qué estoy haciendo mal?

  • es «Líneas» de propiedad de UILabel es 0 ?
  • no «textLabel.numberOfLines = 1;»
  • Tratar de hacer 0…….
  • Cambió a 0 – ahora se muestra el texto en más de una línea
  • ur problema resuelto ?
  • Si usted lee la primera frase de mi pregunta se puede ver que escribió «estoy tratando de mostrar un largo fragmento de texto dentro de un UILabel en una línea.». Por desgracia, – aún sin resolver 🙂
  • su diseño automático está activada?
  • Ese era el problema! Gracias!

InformationsquelleAutor YogevSitton | 2013-11-18

6 Comentarios

  1. 28

    Resulta que el código está bien – pero el Uso Autodiseño fue controlado.
    Sin marcar es – todo funciona simplemente genial…

    • trabajó como un encanto
  2. 20

    Si quieres lograr con este diseño automático activado es muy sencillo. Sólo asegúrese de que usted agregue numberOfLines

    textLabel.adjustsFontSizeToFitWidth = YES;
    textLabel.numberOfLines = 0;
    • Para mí, el truco era asegurar la posición de la etiqueta estaba recogido y, a continuación, el tamaño también trabajado como se esperaba. Y cuidado con adjustsFontSizeToFitWidth – se acaba de reducir el tamaño de la fuente si el texto no apto, que no puede en absoluto ser lo que usted desea.
    • Me salvó el día, gracias!
  3. 4

    Sorprendentemente, si no poner una restricción en el ancho de la etiqueta, este trabajo:

    [textLabel.superview layoutSubviews];

    Me enteré de esto por ensayo y error.

    • Me di cuenta de esto también funciona bien, pero me pregunto si es una buena práctica para salir de una vista con la ambigüedad
    • Esto podría ser intencional. Cuando las restricciones a la izquierda en la ambigüedad algún tipo de comportamiento predeterminado se activa, y en este caso la etiqueta autosizes para que se ajuste. Usted todavía puede aprovechar este comportamiento poniendo el máximo y el mínimo de restricciones, aunque.
  4. 2

    intentar

    textLabel.adjustsFontSizeToFitWidth  = YES;
    textLabel.minimumFontScale      =  0.5;  
  5. 1

    La razón más común para sizeToFit no funciona correctamente es el UILabel no tener ningún autodiseño de restricciones, por ejemplo, si usted está confiando implícitamente en la vista de cargo, el cual quedará fijada en relación a la parte superior izquierda. Agregar ninguna restricción en absoluto (principal, parte superior, centerY, cualquier cosa) va a solucionarlo, presumiblemente, ya que se traducirá en layoutSubviews ser llamado en algún momento, como se sugiere en Maxthon Chan respuesta.

  6. 0

    Ya que han restringido su Etiqueta para mostrar sólo una línea de Texto y truncar el resto , se está comportando de la misma

    textLabel.attributedText = attributedString;
    textLabel.numberOfLines = 0;
    [textLabel sizeToFit];
    textLabel.lineBreakMode = NSLineBreakByWordWrapping;
    textScrollView.contentSize = CGSizeMake(textLabel.frame.size.width, textLabel.frame.size.height);

    La esperanza de que le ayudará a

    • ahora no muestra el «…» pero no mostrar todo el texto. Y el UISCrollView no se desplaza más…

Dejar respuesta

Please enter your comment!
Please enter your name here