2014-07-12 77 views
40

我正在嘗試開發Swift,它會很好。我遇到的其中一個問題是如何在程序語言中編程字體。你如何在Swift中設置字體風格?

例如,在這個標籤我寫了下面的代碼,我怎樣才能使它Helvetica Neue字體超輕例如?

label.font = UIFont (name: "Helvetica Neue", size: 30) 

回答

42

一個很好的資源是iosfonts.com,它說,該字體名稱是HelveticaNeue-UltraLight。所以,你會使用此代碼:

label.font = UIFont (name: "HelveticaNeue-UltraLight", size: 30) 

如果系統無法找到字體,則默認爲「正常」的字體 - 我認爲這是像11點Helvetica。這可能會讓人感到困惑,請檢查您的字體名稱。

57

我假設這是一個自定義字體。對於任何自定義字體,這是你所做的。

  1. 首先下載並您的字體文件添加到在Xcode 項目(該文件應該出現以及在「目標 - >構建階段 - >複製包資源」)。

  2. 在你Info.plist文件添加,類型爲「陣」關鍵「的應用程序提供字體」。

  3. 對於要添加到項目中的每種字體,請使用文件的全名(包括擴展名)(例如HelveticaNeue-UltraLight.ttf)爲已創建的陣列創建一個項目。 保存你的「Info.plist」文件。

label.font = UIFont (name: "HelveticaNeue-UltraLight", size: 30)

+0

我還要補充:不要忘了在「複製軟件包資源」部分包含您的自定義字體,如果您還沒有或者您將無法使用它們 – Audioy

+0

爲什麼認爲這是自定義字體?我認爲最初的問題是尋找與我相同的東西,即font.fontWithItalics()或font.fontWithWeight(),類似於font.fontWithSize()。如果答案是「它必須通過字體名稱來完成」,那麼這就是問題的答案。 – absmiths

15

添加自定義字體在斯威夫特

  1. 將在您的項目,請您的字體。
  2. 仔細檢查它是否被添加到Copy Bundle Resource中。 (構建階段 - >複製包資源)。
  3. 在你的plist文件中添加「字體由應用程序提供」並添加你的字體的全名。
  4. 現在使用的字體,如:myLabel.font = UIFont (name: "GILLSANSCE-ROMAN", size: 20)
+0

謝謝,m8。我仍然堅持Obj-C到Swift的過渡 – Felipe

13

您可以設置自定義字體有兩種方式:design timerun-time

  1. 首先您需要download required font(.ttf文件格式)。然後,雙擊該文件進行安裝。

  2. 這將顯示一個彈出。點擊'install font'按鈕。

Screenshot 1

  • 這將安裝的字體和將出現在'Fonts'窗口。
  • Screenshot 2

  • 現在,字體安裝成功。將自定義字體拖放到您的項目中。在執行此操作時,請確保選中'Add to targets'。
  • Screenshot 3

  • 你需要確保該文件也加入到「Copy Bundle Resources'存在於項目的TargetsBuild Phases
  • Screenshot 4

  • 爲此,你需要在你的項目中Info.plist添加此字體之後。 使用'Font Provided by application'創建一個新密鑰,類型爲陣列。 在Array中添加一個字體作爲String類型的元素。
  • Screenshot 5

    A. Design mode :

  • 選擇從故事板文件中的標籤。轉到Font屬性存在於UtilitiesAttribute inspector中。
  • Screenshot 6

  • 點擊字體,然後選擇 '自定義字體'
  • Screenshot 7

  • 從Family部分選擇您已安裝的自定義字體。
  • Screenshot 8

  • 現在可以看到標籤的該字體被設置爲自定義字體。
  • Screenshot 9

    B. Run-time mode :

    self.lblWelcome.font = UIFont(name: "BananaYeti-Extrabold Trial", size: 16) 
    

    看來,運行時模式不適合動態形成的字符串如

    self.lblWelcome.text = "Welcome, " + fullname + "!" 
    

    注意工作,在上述情況下只有設計時間的方法爲我正確地打下去。

    相關問題