2010-12-07 9 views

Respuesta

7

IOS 7 y superior:

UIBezierPath * imgRect = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 100, 100)]; 
self.textView.textContainer.exclusionPaths = @[imgRect]; 

Swift (crédito a Bart van Kuik):

let exclusionPath = UIBezierPath(rect: CGRectMake(0, 0, 100, 100)) 
self.textView.textContainer.exclusionPaths = [exclusionPath] 
+0

Esta es una solución ** EXCELENTE ** y mucho más simple que usar HTML. Dicho esto, HTML es una solución ** muy rápida. Entonces, ahora que hay * una * forma de hacerlo, el usuario solo necesita elegir su veneno. – Oxcug

0

Si alguien tiene una solución mejor, tráigala, pero normalmente tuve que volver a html para hacer este tipo de truco.

Puede usar dos textViews y una imageView para lograr esto programáticamente, pero me faltarán un par de LOC para escribir. Tendría que averiguar el tamaño de la imagen, establecer la primera vista de tabla para que se ajuste bien a la de, que averiguar dónde la cadena es más larga que visible, cortarla y continuar en el siguiente textView.

Lo mismo podría lograrse mediante un simple UIWebView locales

+0

Hmm ... okay. Esperaba que hubiera una manera simple de lograr esto sin HTML, pero tal vez no sea así. Gracias. –

+0

tal vez hay, no estoy 100% seguro de que no hay, pero no pude encontrar uno. – LordT

+0

Me encantan los votos atrasados ​​en las respuestas anteriores :) – LordT

2

respuesta de Gil en Swift :

let exclusionPath = UIBezierPath(rect: CGRectMake(0, 0, 100, 100)) 
self.textView.textContainer.exclusionPaths = [exclusionPath] 
Cuestiones relacionadas