2014-12-15 5 views
5

Могу ли я изменить шрифт ярлыка программно после того, как я установил его в раскадровке своего расширения WatchKit?Как изменить шрифт метки программно?

+3

На самом деле я не думаю, что это было _that bad_. Как это может быть помечено как дублированный вопрос по шрифту 'UILabel' _size_? 'WKInterfaceLabel' даже не расширяет' UIView' .. – Francescu

ответ

8

Вы можете сделать это через setAttributedText по телефону WKInterfaceLabel. Используйте ключ NSFontAttributeName, когда вы устанавливаете шрифт в атрибутном текстовом словаре.

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() 
    } 

} 
Смежные вопросы