Question

J'ai un problème. Besoin d'un composant pour le texte de mélange, des liens et du texte cliquable.

Facebook App peut voir un exemple. http://img193.imageshack.us/img193/1355/example1t.jpg

Quelqu'un sait un que peut le faire. Par exemple, UITextView peut détecter des liens dans le texte, mais ne peut pas insérer du texte cliquable.

Merci pour votre aide.

Était-ce utile?

La solution

Je l'ai utilisé CoreText à cet effet.

Calcul des décalages de prises était un peu difficile, car je continuais oublier de retourner le système que je finalement obtenu, mais la coordination, et voici un bref aperçu de la façon dont vous pouvez le faire:

  1. Créez votre texte comme un NSMutableAttributedString (puisque vous devrez le modifier à un moment donné).
  2. scannons pour le texte que vous souhaitez ajouter un lien vers, insérer deux attributs: 1) Une couleur de texte qui est, par exemple, le bleu; et 2) un attribut de lien personnalisé (nommez-ce que vous voulez, faire sa valeur être le lien que vous voulez aller)
  3. Rendre le texte dans votre drawRect:. Vous devrez créer un CTFramesetterRef et un CTFrameRef (ce dernier vous voulez garder autour. A noter également que la création d'un framesetter est un processus coûteux, le faire qu'une seule fois (c.-à-dehors de drawRect :) si possible).
  4. Dans votre contact code de gestion, comme je l'ai mentionné plus tôt, vous aurez besoin de compenser les différents systèmes de coordonnées. A partir de là, en supposant que vous savez où votre texte utilise son système de coordonnées, vous pouvez savoir où le texte étant rendu le robinet était, qui peut alors être intercepté dans votre gestionnaire de contact, si l'attribut sur un CTRunRef particulier contient votre lien personnalisé attribut. Le cas échéant, obtenir simplement l'attribut, et le transmettre à tout -. En général, c'est là que vous aurez envie d'utiliser un délégué

C'est le point crucial de celui-ci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top