Ajuste de texto de iOS

En la aplicación que estoy desarrollando actualmente, tengo que implementar una pantalla que permita al usuario hacer una pregunta. Esta pantalla contiene un UIImageView al lado del UITextView, ocupando una parte del espacio. Se parece a la imagen de abajo.

Problema

Mi pregunta es, ¿cómo puedo envolver el texto de UITextView alrededor de UIImageView, de modo que el texto no esté en un bloque, sino que fluya alrededor de UIImageView?

Gracias por adelantado.

preguntado el 22 de mayo de 12 a las 18:05

2 Respuestas

No creo que pueda hacer esto, a menos que su UITextView sea un editor de texto enriquecido o HTML, con la imagen incrustada en su interior. Básicamente, lo que está pidiendo es un UITextView no rectangular. Que yo sepa, eso es imposible en iOS, a menos que tuvieras que crear algo completamente nuevo desde cero, lo que sería extremadamente complejo. He visto muchos controles estilo UILabel que pueden la visualización Texto similar a HTML, pero no editar él.

EDITAR: esto podría ayudar: http://www.cocoanetics.com/2011/01/rich-text-editing-on-ios/

contestado el 22 de mayo de 12 a las 18:05

Desafortunadamente, ese no es un problema trivial ya que UITextField no proporciona ninguna funcionalidad que sería útil aquí.

Sin embargo, lo que podría hacer es implementar su propia vista de texto usando UITextInput (para entrada de texto) y Core Text (para visualización de texto) y luego definir el rectángulo de dibujo para Core Text (puede leer más en Core Text aquí) de un CGPath personalizado que excluiría el marco de las imágenes.

Suena un poco complejo (loco, tal vez), sin embargo, como (casi siempre) hay soluciones de código abierto que ya encontraron una solución. El Marco OmniGroup contiene controles de entrada de texto personalizados basados ​​en Core Text y UITextInput. Están autorizados bajo la licencia MIT (bueno, más menos), por lo que debería estar bien.

contestado el 22 de mayo de 12 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.