2017-04-09 240 views
0

我已經運行了react-native start,然後react-native run-ios。所以我的程序正在運行。矢量字體不能正常工作

我把ios-glyphs.ttf放到我的根目錄下名爲fonts的文件夾中。所以./fonts。然後我加入到這個的package.json:

"rnpm": { 
    "assets": [ 
     "fonts" 
    ] 

}

我然後跑react-native link

後,在我的應用我在仁德補充說:

<Text style={{fontFamily:'ios-glyphs'}}>&#xf193;</Text> 

在我的應用程序它是好的,但負載當我加載呈現此自定義字體,我得到「無法識別的字體系列的iOS頁面-glyphs'」,這裏是截圖:http://i.imgur.com/G6hwlor.png

頁根本駁回該錯誤後的負荷,但圖標看起來像在一個盒子裏一個問號,但我真正的圖標是一個明星:

然後我做了一些時髦的東西。我以爲我把它鏈接錯了,所以我改變了文件夾路徑,並將字體移動到新文件夾並重新鏈接。然後我進入xcode並在「資源」中看到其中兩個,因此我刪除了第一個,因爲該文件夾已不在那裏。

有誰知道如何解決這個錯誤?我應該丟棄這個提交嗎?它會使它像我從來沒有鏈接過任何東西?我擔心我可能會用xcode搞砸我的項目。

回答

1

非常感謝@sfratini - React-Native can't resolve module for fonts - 字體名稱實際上完全不同於文件名,正如本教程所示。

我怎麼找到真正的字體名稱是通過以下@ sfratini的指示。

我打開xcode,並用xcode打開我的項目文件夾中的ios文件夾,就像這樣。

我然後添加到AppDelegate.m此代碼:

NSArray *families = [[UIFont familyNames] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 
    NSMutableString *fonts = [NSMutableString string]; 
    for (int i = 0; i < [families count]; i++) { 
    [fonts appendString:[NSString stringWithFormat:@"\n%@:\n", families[i]]]; 
    NSArray *names = [UIFont fontNamesForFamilyName:families[i]]; 
    for (int j = 0; j < [names count]; j++) { 
     [fonts appendString:[NSString stringWithFormat:@"\t%@\n", names[j]]]; 
    } 
    } 
    NSLog(@"%@", fonts); 

然後在控制檯日誌中找到新的圖標名稱。

我的項目文件夾:

開放和Xcode:

單擊文件夾,然後添加到AppDelegate中。米代碼然後保存,要麼運行react-native run-ios或按「播放」按鈕,如下面的截圖(你需要重新編譯,我懷疑重裝熱工作,但我沒有測試):

然後,字體名稱的完整列表在控制檯中的日誌吐出:

我做的字體鏈接前,然後鏈接後,並沒有一個diff找到我的字體名稱。