2017-08-13 3 views
0
angegeben

ich eine benutzerdefinierte Schriftart in unserer App verwenden, und hat festgestellt, dass, wenn ich eine Set FontAttributes = „Bold“ für einen Label-Stil der Schriftart verwendet wird, es funktioniert auf dem iOS-Simulator, aber nicht auf einem echten Gerät.Xamarin.Forms benutzerdefinierte Schriftart nicht auf iOS-Gerät aufgenommen, wenn FontAttributes

Schritte: 1. Die Schriftart Effra_Std_Reg.ttf wurde in den Ordner resources hinzugefügt. diese 2. Zusammen mit den Fonts, die durch die Anwendung Element in Info.plist und legen Sie seine Aktionen bauen. 3. Erstellte Stile in App.XAML. 4. Diese Stile wurden dem XAML auf meiner Seite hinzugefügt.

Alle das obige funktioniert gut für ein Label ohne FontAttributes gesetzt. Sobald ich FontAttributes = "Bold" entweder auf dem Style oder dem Label selbst gesetzt habe, wird die Systemschriftart nicht verwendet. Hinweis , dass dies auf dem Simulator funktioniert.

Ich weiß, dass die FontFamily ist die Schriftart Name wie in der TTF-Datei definiert - nicht der TTF-Dateiname.

Dies auf einem iPad mit iOS 10.3.3.

Mein App.xaml ist:

<?xml version="1.0" encoding="utf-8" ?> 
<Application x:Class="FontTest.App" 
      xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <Style TargetType="Label"> 
       <Setter Property="FontSize" Value="30" /> 
      </Style> 

      <Style x:Key="PlainLabelStyle" TargetType="Label"> 
       <Setter Property="FontFamily"> 
        <Setter.Value> 
         <OnPlatform x:TypeArguments="x:String" 
            Android="Effra_Std_Rg.ttf#Effra" 
            iOS="Effra" /> 
        </Setter.Value> 
       </Setter> 
      </Style> 

      <Style x:Key="BoldLabelStyle" TargetType="Label"> 
       <Setter Property="FontFamily"> 
        <Setter.Value> 
         <OnPlatform x:TypeArguments="x:String" 
            Android="Effra_Std_Bd.ttf#Effra" 
            iOS="Effra" /> 
        </Setter.Value> 
       </Setter> 
       <Setter Property="FontAttributes" Value="Bold" /> 
      </Style> 

     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

Und meine Seite XAML (Auszug) ist:

<Label Grid.Row="4" 
       Grid.Column="1" 
       Style="{StaticResource BoldLabelStyle}" 
       Text="QWERTYUIOPASDFGHJKLZXCVBNM" /> 

Antwort

0

es Um auf dem Gerät arbeiten, hatte ich die fette Schrift-Datei aufgenommen werden (Effra_Std_Bd.ttf), und geben Sie eine FontFamily von 'Effra-Bold' an.

So scheint es, dass der Fontfamily die Namen und der Stil sein muss.

Seltsam, dass es auf dem Simulator gearbeitet.

Verwandte Themen