2015-04-01 80 views
1

我有一個Apple Watch應用程序使用Menlo Bold字體作爲標籤。在WatchKit(Apple Watch)中設置系統以外的其他字體

在支持watchkit的Xcode的第一個版本中,我能夠將故事板中的標籤字體更改爲Menlo Bold 36,並且一切正常。

在CURENT版本(的Xcode 6.2),這是不可能的了,所以我發現瞭如何自定義字體設置Apple關注本教程中,http://www.tech-recipes.com/rx/53710/how-do-i-use-custom-fonts-in-my-apple-watch-app/

我這個教程中,我發現這個代碼:

func printFonts() { 
    let fontFamilyNames = UIFont.familyNames() 
    for familyName in fontFamilyNames { 
     println("------------------------------") 
     println("Font Family Name = [\(familyName)]") 
     let names = UIFont.fontNamesForFamilyName(familyName as String) 
     println("Font Names = [\(names)]") 
    } 
} 

此代碼打印可用字體。
它用於瞭解爲什麼添加的字體的名稱。

在這個階段,我沒有添加任何自定義字體,但我運行此功能只是爲了查看默認情況下Apple Watch上可用的字體。
運行這個後,我發現:

/* lot of fonts before */ 
------------------------------ 
Font Family Name = [Menlo] 
Font Names = [[Menlo-BoldItalic, Menlo-Regular, Menlo-Bold, Menlo-Italic]] 
------------------------------ 
/* lot of fonts after */ 

它看起來像我的門洛帕克粗體可以用Apple關注,但我不能在故事板中選擇它。

所以,我認爲這是非常好的,我不需要添加字體,我只是使用它。

這是我的代碼:

// must maee attributed text 
    let attributedTextForHour = NSAttributedString(
     string: "IS IT WORKING", 
     attributes: NSDictionary(object: UIFont(name: "Menlo-Bold", size: 36)!, forKey:NSFontAttributeName)) 

    // with atributex text 
    mylabel.setAttributedText(attributedTextForHour) 

當我運行在模擬器此代碼,標籤的字體不改變。
這裏有其他一些奇怪的事情:

    調試器
  • ,當我設置上mylabel.setAttributedText(attributedTextForHour)突破點,做快看就attributedTextForHour它是在正確的字體顯示。

所以在調試器中它是好的,但在模擬器上它不是。

那麼如何解決這個問題呢?

我沒有Apple Watch,所以我可以看到真實設備上發生了什麼。

因此,我不知道我的代碼中是否存在某些問題,或者這是Apple的錯誤形式。

如果有人可以在計算機上測試並報告結果,那也是有用的。

也許整個問題是因爲我沒有從外面添加Menlo粗體字體,我正在使用printFont()函數顯示的內容。 所以,如果有人知道我可以下載Menlo Bold字體,請提供鏈接,以便我也可以測試。

回答

3

我設法解決這個問題,所以我爲後代發帖。

有跡象表明,我從這裏學到的(工作3小時後)幾件事情

印在printFonts()事情變得複雜。

你不能用相同的名字來添加它,所以你必須添加不同的名字,我把它叫做Menlo-Bold-My.otf,你必須改變一些字體的ID。 因此Menlo-Bold-My.otf與Apple的Menlo-Bold.otf相同。

用於轉換,操縱我使用的字體程序http://fontforge.github.io/en-US/

相關問題