ios ios7 uilabel nsattributedstring nstextattachment

ios - En un UILabel, ¿es posible forzar una línea que NO se rompa en un lugar determinado?



ios7 nsattributedstring (1)

Puede usar un espacio sin interrupciones ( /u00a0 ) para unir textFragment2 y textFragment3. Este personaje se ve como un espacio normal, es decir, da como resultado la misma cantidad de espacio en blanco, pero el salto de línea no se producirá en ninguno de los lados.

También podría usar un espacio de ancho cero ( /u2060 ). El uso de este personaje no generará espacios en blanco, pero aún evitará que se rompa la línea en ambos lados. Esto es lo que quiere si no quiere ningún espacio entre textFragment2 y textFragment3 pero aún desea evitar que se rompa la línea. (También es útil si tiene una palabra con un guión en el medio, pero desea evitar que la línea se rompa después del guión).

Puedes leer más sobre este tipo de personajes en Wikipedia .

Tengo un UILabel que se supone que tiene dos líneas de longitud. El texto está localizado en francés e inglés.

Estoy configurando la propiedad attributeText de la etiqueta. El texto se construye a partir de tres cadenas anexas, digamos textFragment1, textFragment2 y textFragment3. La cadena del medio es en realidad una imagen creada con un NSTextAttachment.

Quiero asegurarme de que textFragment2 y textFragment3 estén en la misma línea. La primera cadena puede o no ajustarse dependiendo de cuánto tiempo es. El problema es que mi texto en francés es actualmente bastante corto, por lo que la línea se ajusta después de textFragment2.

Lo he arreglado temporalmente agregando un símbolo de salto de línea en el texto francés localizado para textFragment1. Aunque realmente no amo esta solución. Me preguntaba si hay una forma de tratar textFragment2 y textFragment3 para que siempre estén juntos en la misma línea.