Necesito mover el texto que el usuario ha ingresado en una gran línea múltiple UITextView
en una más pequeña (pero aún multilínea) UITextView
*. Si el usuario ha ingresado más texto de lo que se mostrará en la vista más pequeña, quiero truncar el texto para que se ajuste a todo el texto (truncado) visible. (Ni el gran UITextView
ni el más pequeño deben desplazarse.)Longitud de cadena con una fuente determinada para adaptarse a UITextView
¿Cuál es la mejor manera de hacerlo?
Puedo usar un bucle, acortando la cuerda por un carácter cada vez, y luego uso NSString
's sizeWithFont: constrainedToSize: lineBreakMode:
para averiguar la altura que necesitaría esta cuerda más corta, y luego comparar eso con la altura que tengo disponible en mi pequeño UITextView
, terminando el ciclo cuando la cadena encajará, pero parece lento e incómodo. Debe haber una mejor manera.
Me gustaría decirle al destino UITextView
para truncar su miembro de displayText como lo muestra en la pantalla, pero no he podido encontrar la manera de hacerlo.
* Más en este contexto, a partir de un comentario que hizo a continuación:
Tengo una aplicación paisaje. Cambio el diseño de la vista dependiendo de la foto que el usuario elija. Si se trata de una foto de paisaje, la leyenda es más pequeña, solo una línea en la parte inferior de la foto. Si ella elige una foto de retrato, entonces hay un montón de espacio que puedo usar para la leyenda al costado de la foto, así que la leyenda es más grande.
Si el usuario cambia la orientación de su foto de vertical a horizontal, entonces quiero truncar el texto y luego permitirle que lo edite para que tenga sentido. Podría borrarlo, pero preferiría preservarlo para minimizar su tipeo.
este código es fantástico, gracias, pero he encontrado dos situaciones en las que falla: 1) si tiene muchos espacios en la cadena 2) la "<" en la línea "if (stringSize.height
SpaceDog