Domanda

Ho un problema. Hai bisogno di un componente per il testo mix, link e il testo cliccabile.

In Facebook App può vedere un esempio. http://img193.imageshack.us/img193/1355/example1t.jpg

Qualcuno conosce una che può fare questo. Ad esempio, UITextView in grado di rilevare i link nel testo, ma non può Inserisci testo cliccabile.

Grazie per il vostro aiuto.

È stato utile?

Soluzione

Ho usato CoreText per questo scopo.

Il calcolo gli offset rubinetto era un po 'complicato, dal momento che ho mantenuto dimenticando di capovolgere il sistema di coordinate, ma alla fine ho capito, ed ecco una panoramica brevemente di come si può fare:

  1. Crea il testo come un NSMutableAttributedString (dal momento che si dovrà modificare a un certo punto).
  2. Scan per il testo che si desidera aggiungere un collegamento a, inserire due attributi: 1) Un colore del testo che è, per esempio, blu; e 2) un attributo di collegamento personalizzato (il nome è qualcosa che ti piace, rendono il suo valore sia il collegamento che si desidera andare a)
  3. Render il testo nel drawRect:. Avrai bisogno di creare un CTFramesetterRef e CTFrameRef (quest'ultimo si vorrà mantenere intorno. Si noti inoltre che la creazione di un framesetter è un processo costoso, farlo solo una volta (cioè, al di fuori di drawRect :) se possibile).
  4. Nel codice di movimentazione tocco, come ho già detto in precedenza, è necessario per compensare i sistemi di coordinate differenti. Da lì, a patto di sapere dove il testo sta utilizzando il sistema di coordinate, si può capire dove sul testo viene eseguito il rendering del rubinetto era, che possono poi essere intercettato nel vostro gestore di contatto, se l'attributo su un determinato CTRunRef contiene il link personalizzato attributo. Se lo fa, semplicemente ottenere l'attributo, e passarlo a tutto ciò -. In genere questo è dove si desidera utilizzare un delegato

Questo è il punto cruciale di esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top