2014-12-15 23 views
5

Czy mogę programowo zmienić czcionkę etykiety po ustawieniu jej w oknie Scenorki mojego rozszerzenia gry WatchKit?Jak programowo zmienić czcionkę etykiety?

+3

Właściwie nie sądzę, że to było złe. W jaki sposób można to oznaczyć jako zduplikowane pytanie przez czcionkę 'UILabel' _size_? 'WKInterfaceLabel' nawet nie rozszerza' UIView' .. – Francescu

Odpowiedz

8

Możesz to zrobić przez setAttributedText pod numerem WKInterfaceLabel. Użyj klawisza NSFontAttributeName dla klawisza, gdy ustawisz czcionkę w słowniku z przypisanym tekstem.

1
import WatchKit 
import Foundation 


class InterfaceController: WKInterfaceController { 
    @IBOutlet weak var label1: WKInterfaceLabel! 
    @IBOutlet weak var label2: WKInterfaceLabel! 
    @IBOutlet weak var label3: WKInterfaceLabel! 

    override func awakeWithContext(context: AnyObject?) { 
     super.awakeWithContext(context) 

     // Configure interface objects here. 
     let headlineFont = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline) 
     let footnoteFont = UIFont.preferredFontForTextStyle(UIFontTextStyleFootnote) 
     let text1 = NSMutableAttributedString(string: "Tangerine Bold") 
     text1.addAttribute(NSFontAttributeName, value: headlineFont, range: NSMakeRange(0, 3)) 
     text1.addAttribute(NSFontAttributeName, value: footnoteFont, range: NSMakeRange(3, 3)) 
     label1.setAttributedText(text1) 

     let regularFont = UIFont.systemFontOfSize(24) 
     let heavyFont = UIFont.systemFontOfSize(24, weight: UIFontWeightHeavy) 
     let text2 = NSMutableAttributedString(string: "Tangerine Regular") 
     text2.addAttribute(NSFontAttributeName, value: regularFont, range: NSMakeRange(0, 3)) 
     text2.addAttribute(NSFontAttributeName, value: heavyFont, range: NSMakeRange(3, 3)) 
     label2.setAttributedText(text2) 

     let text3 = NSMutableAttributedString(string: "Tangerine Bold (Code)") 
     if let tangerineBoldFont = UIFont(name: "Tangerine-Bold", size: 20) { 
      text3.addAttribute(NSFontAttributeName, value: tangerineBoldFont, range: NSMakeRange(0, 21)) 
     } 
     label3.setAttributedText(text3) 

    } 

    override func willActivate() { 
     // This method is called when watch view controller is about to be visible to user 
     super.willActivate() 
    } 

    override func didDeactivate() { 
     // This method is called when watch view controller is no longer visible 
     super.didDeactivate() 
    } 

} 
Powiązane problemy