Ist es möglich, eine Liste von Attributen und reicht für ein NSMutableAttributedString?
Habe ich eine Methode erstellt, nimmt einen NSAttributedString und ich bin auf der Suche, um dynamisch erstellen Sie eine Untersicht und label um die Zeichenfolge in. Da Attribute wie schriftart und-Größe bestimmt werden müssen, um korrekt zu bestimmen, die Größe des Etiketts, die ich brauche, um zu bestimmen, ob es möglich ist, Durchlaufen die Werte und Bereiche, die angewendet wurden, um die zugeschrieben string?
Verstehe ich, dass ich übergeben konnte, die Attribute getrennt, aber aus Gründen der Wiederverwendbarkeit möchte ich weitergeben kann, so wenig Parameter an die Methode, wie möglich.
InformationsquelleAutor der Frage propstm | 2013-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Apple erwartet, dass Sie verwenden
enumerateAttributesInRange:Optionen:usingBlock:
. Den block, den Sie liefern, erhalten reicht und die Attribute anwendbar für diesen Bereich.Ich verwendet habe, dass in meinem code zu erstellen, unsichtbare Schaltflächen platziert sind, hinter den text, so dass es wirkt wie ein hyperlink.
Könnten Sie auch
enumerateAttribute:inRange:Optionen:usingBlock:
ob es nur eine, die Sie interessiert, aber kein halfway house, wo Sie von Interesse sein könnten, sagen wir, zwei Eigenschaften, aber nicht jedes Attribut.InformationsquelleAutor der Antwort Tommy
Swift 4
In Fall, dass Sie definiert haben
attributedText
label.Swift 3
Swift 2.2
InformationsquelleAutor der Antwort dimpiax
Wenn Sie müssen alle Attribute aus der Zeichenfolge in der gesamten Palette, verwenden Sie diesen code:
NSDictionary *attributesFromString = [stringWithAttributes attributesAtIndex:0 longestEffectiveRange:nil inRange:NSMakeRange(0, stringWithAttributes.length)];
InformationsquelleAutor der Antwort TheJeff
Apple Docs haben eine Reihe von Methoden zum Zugriff auf Attribute:
Abrufen Attribut-Werte von der Art zugeschrieben Zeichenfolge, verwenden Sie eine der folgenden Methoden:
attributesAtIndex:effectiveRange:
attributesAtIndex:longestEffectiveRange:inRange:
attribute:atIndex:effectiveRange:
attribute:atIndex:longestEffectiveRange:inRange:
fontAttributesInRange:
rulerAttributesInRange:
InformationsquelleAutor der Antwort paulrehkugler
Swift 3:
InformationsquelleAutor der Antwort Trein
Swift 4:
Wenn Sie möchten, um die Attribute für NSTextAttachment (ändern Sie einfach den Wert des Attributs wenn Sie möchten, schriftart)
InformationsquelleAutor der Antwort Josh O'Connor
Habe ich geändert, eine der Antworten, die mit den vorgeschlagenen Korrekturen um zu verhindern, dass eine unendliche Rekursion und Anwendung abstürzt.
InformationsquelleAutor der Antwort Michał Ziobro