2017-04-19 3 views
1

WatchKit unterstützt using a monospaced font for digits. Verwenden von Xcode 8.3.2 und WatchOS 3.bestimmen Schriftgröße und Gewicht von WKInterfaceLabel - benötigt für monospaced Schriftart

Ich glaube, ich kann dies nicht im Interface Builder definieren/auswählen, daher muss ich dies manuell einstellen. Hierzu kann ich folgendes verwenden:

class func monospacedDigitSystemFont(ofSize fontSize: CGFloat, 
           weight: CGFloat) -> UIFont 

Dazu muss ich die Größe und das Gewicht einstellen. Ich möchte diese aus den Label-Einstellungen übernehmen, wie sie im Interface Builder definiert sind.

Aber: wie bekomme ich die aktuelle Größe und das Gewicht des Etiketts? Es scheint, dass es keine Methode gibt, um die aktuellen Attribute zu erhalten. Als Ergebnis scheint es, dass ich es hartcodieren muss, wenn ich die monospaced Schriftart anwende.

@IBOutlet var myLabel: WKInterfaceLabel! 

extension WKInterfaceLabel { 
    func setTextMono(_ str: String, size: CGFloat? = 15.0, weight: CGFloat? = UIFontWeightRegular) { 
    let monospacedFont = UIFont.monospacedDigitSystemFont(ofSize: size!, weight: weight!) 
    let attributedString = NSAttributedString(string: str, attributes: [NSFontAttributeName : monospacedFont]) 
    self.setAttributedText(attributedString) 
    } 
} 

myLabel.setTextMono("12:13.14", size: 32.0, weight: UIFontWeightRegular) 

Frage: es ist auf keinen Fall ein Weg, um die aktuelle Größe und das Gewicht des Etiketts und/oder zu vermeiden zu erhalten, die diese zur Verfügung zu stellen?

Antwort

1

Leider gibt es keine Methode, die Schriftart, Größe zurückgibt. Außerdem können Sie den aktuellen Text des Labels nicht abrufen. Hoffe, dass zukünftige Versionen der Uhr mehr APIs erlauben, Dinge zu tun, da es in den verfügbaren Versionen viele Einschränkungen zu geben scheint.

Für solche Anforderungen habe ich Konstanten erstellt und die Schriftgröße und den Namen verwaltet. Sie können Konstanten, Enums, Strukturen, plisten, was immer Sie bevorzugen.

+0

danke für die doppelte Überprüfung Parth. – wivku

Verwandte Themen