8
votes

TTTATTRIBUEDLABELLABEL DÉTECTORITÉ NON TRAVAILLER EN IOS8 avec SWIFT

Je souhaite utiliser TTtattributedLabel pour détecter le lien du texte dans l'étiquette d'UitailViewCell, mais cela ne fonctionne pas. J'utilise Swift avec iOS8. Vous trouverez ci-dessous le code UitailViewCell: xxx


2 commentaires

Découvrez: Stackoverflow.com/a/22395136/1106035


@Prince, ce n'est pas du travail


5 Réponses :


12
votes

Je pense que vous n'avez pas configuré votre cellule personnalisée code> correctement strong>.

premier strong> à votre CustomCell Déclarez et connectez votre iboutlet code> -s. Sélectionnez votre TextLabel et ajoutez sa classe à TTtatTtributedlabel code>. Votre cellule personnalisée doit ressembler à ceci: p> xxx pré>

second strong> Vous devez ajouter le tttattributedlabeldegate code> à la classe où vous êtes Utilisation de la TableView DataSource et déléguée. P>

STRY> SOUS STRY> SOUS CELLFORTORTIDEXPATH CODE> P>

var cell: StoryTableViewCell = tableView.dequeueReusableCellWithIdentifier("yourCellIdentifier") as StoryTableViewCell

let linkColor = UIColor(red: 0.203, green: 0.329, blue: 0.835, alpha: 1)
let linkActiveColor = UIColor.blackColor()

cell.textLabel.delegate = self

cell.textLabel.linkAttributes = [kCTForegroundColorAttributeName : linkColor]
cell.textLabel.activeLinkAttributes = [kCTForegroundColorAttributeName : linkActiveColor]        
cell.textLabel.enabledTextCheckingTypes = NSTextCheckingType.Link.rawValue


3 commentaires

J'ai suivi votre réponse mais je ne suis pas capable de le faire fonctionner. Une idée de la façon de le déboguer? Le texte est là mais aucun lien n'est trouvé.


Mise à jour 1: J'ai commencé le débogage en ajoutant les fonctions déléguées attribuéesLabel DidSelectLinkwithurl et DidlongressLinkwithurl. Le premier ne fonctionnait pas mais ce dernier est. Mise à jour 2: Le didingSelectLinkWithURL n'a pas été appelé parce que j'avais un tapeur dans la vue qui était avec Tapper.CancelStouchesInview = true. Lorsque je l'ai défini sur False, le clic a commencé à travailler.


Il semble que NsforegroundColorattributename ne fonctionne pas sur iOS8. Si cela se produit, utilisez simplement kCoregroundColorattributename à la place.



0
votes
    let linkColor = UIColor.blueColor()
    let linkActiveColor = UIColor.greenColor()

    textLabel.delegate = self

    textLabel.linkAttributes = [kCTForegroundColorAttributeName : linkColor.CGColor,kCTUnderlineStyleAttributeName : NSNumber(bool: true)]
    textLabel.activeLinkAttributes = [NSForegroundColorAttributeName : linkActiveColor]
    textLabel.enabledTextCheckingTypes = NSTextCheckingType.Link.rawValue

1 commentaires

Bonjour Kamlesh, je suis confronté à un problème en cliquant sur le jeton de troncature à tttattributedlabel.vous avez-vous une idée de ça?



3
votes

Si vous avez défini Tttattributedlabel comme la classe de votre Uilabel, dans une nibrité ou du storyboard, assurez-vous que Interaction utilisateur activée est défini sur true, comme étant par défaut, un Uilabel aura une interaction utilisateur désactivée. .


0 commentaires

0
votes

Swift 4.2 label.EnabledTextCheckingTypes = NstextCheckingResult.CheckingType.Link.rawvalue | NstextCheckingResult.CheckingTtype.Phonenumber.Rawvalue


0 commentaires

0
votes

rien ne fonctionne pour moi enfin je mets au-dessous du code dans tttattributedlabel.m in commoninit () méthode xxx


0 commentaires