Ich möchte alle Instanzen von ® Zeichen in einem Textblock (legaler Disclaimer, natürlich;)) und der Standard Weg NSAttributedString
ist nicht sehr gut.NSAttributedString hochgestelltes Styling
Wenn ich nur das Zeichen sein lasse und nur unmodified NSString
verwende, wird es die gleiche Größe wie ein Großbuchstabe gerendert und ungefähr an der Basislinie platziert. Wenn ich das hochgestelltes Attribut NSAttributedString
hinzufügen wie folgt:
[attrStr setAttributes:@{(NSString *)kCTSuperscriptAttributeName : @1} range:NSMakeRange(locationOfReg, 1)];
Der Charakter der Basislinie abgehoben wird, ist seine Größe unverändert, aber der Zeilenabstand ist jetzt betroffen, da der erhöhte Charakter sonst auf der Linie oben eindringen würde. Um
veranschaulichen:
Ich habe dieses Bild in Photoshop, wo die gewünschte Position, die durch die Verringerung der Größe des Zeichens und Verschieben des Basislinie erreicht war. Ich weiß, wie man die Schriftgröße in iOS ändert, aber das Ändern der Grundlinie scheint komplizierter. Irgendwelche Vorschläge, wie man das erreicht?
Edit: Ich nehme an, ich könnte das hochgestellte Attribut als eine Möglichkeit verwenden, um die Grundlinie nach oben zu verschieben. Nun wäre es gut, einen Weg zu finden, die aktuelle Schriftgröße zu erhalten und sie anschließend zu reduzieren, damit dieselbe Methode auch für Textblöcke unterschiedlicher Größe verwendet werden kann.
Kann nicht machen es in iOS arbeiten 6. Können Sie seinen Ersatz sorgen für iOS 6? –
Nur unter iOS 7 getestet und Deklaration für fnt hinzugefügt, die nicht abstürzt. –
@AlexZavatone danke! Entschuldigung, musste den Kommentar entfernen, da es nicht wirklich relevant ist;) – kovpas