2016-11-09 4 views
1

Я пытаюсь получить шрифт, потрясающий для работы в моем приложении.Font awesome не работает на iOS

Я сделал пользовательские метки, чтобы сделать это:

public FALabel() 
{ 
    FontFamily = Device.OnPlatform(null, "FontAwesome", "/Assets/fontawesome-webfont.ttf#FontAwesome");  
} 

Я добавил шрифты в 2-х проектов.

На андроиде он работает должным образом - на IOS его нет, см. Рисунок ниже.

enter image description here

Это должно было быть 6 различных элементов - ни один из них не является признаком вопрос.

Я добавил шрифт в info.plist и установил действие сборки для копирования всегда. Я проверил, что шрифт установлен на IOS со следующим фрагментом:

private void LogFonts() 
{ 
    foreach (NSString family in UIFont.FamilyNames) 
    { 
    foreach (NSString font in UIFont.FontNamesForFamilyName(family)) 
    { 
     Console.WriteLine(@"{0}", font); 
    } 
    } 
} 

Мои шрифты удивительным юникодов извлекаются из строки:

... 
public static string FAGlass = "\uf000"; 
public static string FAMusic = "\uf001"; 
public static string FASearch = "\uf002"; 
... 

Как уже упоминалось ранее, это работает, как ожидалось на Android - что мне не хватает?

Соответствующий раздел Info.plist

<key>UIAppFonts</key> 
<array> 
    <string>FontAwesome.ttf</string> 
</array> 
+0

Вы можете включать в свое содержание info.plist? Вы упомянули, что добавили туда шрифт и можете его перечислить, но, возможно, в декларации все еще что-то не так. Кроме того, для моего fontawesome-webfont.ttf установлено значение «Не копировать», создайте действие: пакетный ресурс, и он находится в корневой папке «Ресурсы». Он отлично работает. – irreal

+0

Готово. Я только установил действие сборки, потому что он не работал. но все же, шрифт установлен - это странно. –

+0

Единственное отличие от моей настройки, которую я вижу, это то, что у меня есть fontawesome-webfont.ttf, и мой фактический файл шрифтов действительно называется fontawesome-webfont.ttf – irreal

ответ

0

Первый аргумент вы передаете вызов Device.OnPlatform при установке FontFamily это значение для использования на платформе IOS. В вашем случае вы установили его равным null.

я установка шахты, как это:

FontFamily = Device.OnPlatform("FontAwesome", "FontAwesome", @"/Assets/Fonts/fontawesome - webfont.ttf#FontAwesome"); 
//For Android, a custom renderer is required in any case, which can specify the correct font without utilizing the FontFamily property, but I prefer to specify it there as well, for clarity or if you decide to support multiple fonts 

и она работает просто отлично.

+0

Это неловко ... Спасибо: D –