2010-07-05 88 views
4

我嘗試在iOS4應用中使用字體手提箱來定製字體,但沒有取得任何成功。帶有字體手提箱的iPhone自定義字體

我已閱讀,記錄瞭如何使用自定義字體,因此複製了手提箱到我的項目的其他職位,將其添加到資源和Info.plist的陣列「 字體由應用程序提供的」,並試圖用它在Interface Builder和代碼中。但它不起作用!

我發現的關於自定義字體的所有示例都顯示了將它們與ttf或otf文件一起使用,但與手提箱無關。可以做到嗎?如果沒有,我怎樣才能從字體書中找到可以用作自定義字體的文件結構?

回答

-1

首先將SystemConfiguration框架包含到您的項目中。並根據您的要求添加ttf或otf文件。然後導入dlfcn.h文件來委託實現文件。然後您必須在圖像alt text中附加後調用該功能。

然後你可以在你想要使用自定義字體的地方訪問你的控制器。您只需在UIFont的fontwithName:方法中傳遞字體。

+0

這並沒有回答這個問題,這是關於使用(pre-OpenType)手提箱格式字體的問題。 – 2011-02-08 19:45:24

7

我有同樣的問題,只是解決了它。朋友給了我幾個字體壓縮,我解壓縮,然後文件大小爲零kb,我不能將它們安裝到字體書。 所以我搜索了一下,發現我的朋友應該使用StuffIt Expander來壓縮。於是他又把文件發給我,我用StuffIt Expander解壓。然後我可以將字體安裝到我的Font Book中。

但是,字體仍然不適用於我的iOS應用程序。所以下面是我做過什麼:

  1. 我發現我需要的字體轉換,所以我安裝Fondu http://fondu.sourceforge.net/ 安裝最後說並不成功,但後來我仍然能夠使用。

  2. 然後我意識到我需要Rosetta來運行Fondu,所以我查看了此頁面上的說明。 得到了我的雪豹光盤拿出來,並安裝可選包 http://www.macobserver.com/tmo/article/snow_leopard_installing_rosetta/

  3. 打開終端,並轉到您的字體所在的目錄。輸入命令: fondu [字體文件] 然後,您將收到一個提示,詢問您是否要保存[字體文件] .pfb 選擇是。

  4. 現在在您的XCode中,將pfb文件添加到您的項目中。然後轉到info.plist並將文件添加到UIAppFonts(包括.pfb擴展名)。

  5. 我測試字體在一個UITableViewCell

cell.textLabel.font = [UIFont fontWithName:@ 「[字體文件]」 大小:30]; //不包含.pfb擴展名

字體顯示正常。我最初認爲iOS需要一個.ttf文件,但看起來像.pfb也很好。

希望這會有所幫助。

附加測試提示: 一旦添加了UIAppFonts的plist陣列,如上圖所示在appDidFinishLaunchingWithOptions方法和在控制檯上鍵入

po [UIFont familyNames] 

,讓你安裝的字體列表,以便搜索添加一個斷點您字體系列名稱。複製並粘貼到此:

po [UIFont fontNamesForFamilyName:@"familyname"] 

這會得到您在代碼中引用的字體名稱。我沒有嘗試[字體文件名]的方法,但這給你的名稱應用程序用來引用你想要的確切字體。當字體包含一系列變體或者您從同一系列中安裝多個變體時,這很重要。例如,helvetica有四種變體,所以你可以這樣選擇正確的一種:

lblMyLabel.font = [UIFont fontWithName:@"fontname" size:lblMyLabel.font.pointSize] 

例如,

lblMyLabel.font = [UIFont fontWithName:@"Helvetica-Oblique" size:lblMyLabel.font.pointSize] 

這會保留原來用於標籤的字體點大小。一旦視圖加載,我也只有成功。