2017-09-04 1 views
0

ich eine mathematische App erschaffe und möchte einen Exponenten habe 2. Ich nicht in der Lage gewesen, eine Lösung für Xcode 8 zu finden, dass sie nicht eine Grundlinie gesetztPutting einen Exponenten in einem Etikett in xcode8

finalFunc.text = "Converted: \(printA)(x+\(printB))^2+\(printC)" 
ist
+0

Haben Sie die Antwort überprüft? –

+0

Ich habe es versucht und ich bekomme 2 Fehler. es sagt erwartete Verzögerung attString und diese Schriftart kann nicht in Initialisierer verwendet werden :(irgendwelche Gedanken? und danke für die Hilfe! –

+0

Kannst du deinen versuchten Code zeigen, wo Sie Fehler bekommen? –

Antwort

0

Mit diesem Code -

let font:UIFont? = UIFont(name: "Helvetica", size:20) 
let fontSuper:UIFont? = UIFont(name: "Helvetica", size:10) 
let attString:NSMutableAttributedString = NSMutableAttributedString(string: "xcode8", attributes: [NSFontAttributeName:font!]) 
attString.setAttributes([NSFontAttributeName:fontSuper!,NSBaselineOffsetAttributeName:10], range: NSRange(location:5,length:1)) 
label1.attributedText = attString; 

Ausgang -

enter image description here

0

Für eine einfach zu Swift Lösung verwenden, möchten Sie vielleicht zur Kasse gehen HandyUIKit. Nachdem es in Ihr Projekt importieren (zB über Karthago - siehe Anleitung in README) Sie etwas tun können:

import HandyUIKit 

let someFont = UIFont.systemFont(ofSize: 20, weight: .medium) 
"Converted: \(printA)(x+\(printB))^{2}+\(printC)".superscripted(font: someFont) 

Die letzte Zeile ein NSAttributedString zurück, die genau aussehen wird was Sie suchen . Nur es zu einem UILabel s attributedText Eigentum und zuweisen, das ist es!


Wenn Sie suchen einen Text Indizierung, einfach subscripted(font:) stattdessen verwenden. Es erkennt Strukturen wie CO_{2}. Es gibt auch superAndSubscripted(font:), wenn Sie beide kombinieren möchten.

Weitere Informationen und weitere Beispiele finden Sie unter docs.

Verwandte Themen