Pregunta

Tengo un problema. ¿Necesita un componente para el texto mezcla, enlaces de texto y hacer clic.

En la aplicación de Facebook puede ver un ejemplo. http://img193.imageshack.us/img193/1355/example1t.jpg

Alguien sabe una que puede hacer esto. Por ejemplo, UITextView puede detectar enlaces en el texto, pero no puede insertar el texto puede hacer clic.

Gracias por su ayuda.

¿Fue útil?

Solución

He utilizado CoreText para este propósito.

El cálculo de las compensaciones del grifo es un poco complicado, ya que me olvidaba darle la vuelta al sistema de coordenadas, pero finalmente lo consiguió, y he aquí una breve visión general de cómo puede hacerlo:

  1. Crea tu texto como una NSMutableAttributedString (ya que tendrá que modificar en algún momento).
  2. Escaneado por el texto que desea agregar un enlace a, insertar dos atributos: 1) Un color del texto que es, por ejemplo, azul; y 2) un atributo de enlace personalizado (nombre que lo que quiera, haga su valor sea el enlace que desea ir a)
  3. Interpretar el texto en su drawRect:. Tendrá que crear una CTFramesetterRef y una CTFrameRef (este último que querrá mantener alrededor. También tenga en cuenta que la creación de un framesetter es un proceso caro, hacerlo sólo una vez (es decir, fuera de drawRect :) si es posible).
  4. En el código de manejo táctil, como he mencionado antes, que necesita para compensar los diferentes sistemas de coordenadas. A partir de ahí, asumiendo que usted sabe dónde está su texto está usando su sistema de coordenadas, se puede averiguar en qué parte del texto que se presta el grifo estaba, que luego pueden ser interceptado en su controlador de toque, si el atributo más de un CTRunRef particular contiene el vínculo personalizado atributo. Si lo hace, sólo tiene que obtener el atributo, y pasarlo a lo que sea -. Normalmente, este es el lugar donde desea utilizar un delegado

Ese es el quid de la cuestión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top