私のアプリでカスタムフォントを使用していて、フォントを使用してLabelAttributes = "Bold" iOSシミュレータでは動作しますが、実際のデバイスでは動作しません。FontAttributesが指定されている場合、Xamarin.FormsカスタムフォントがiOSデバイスで取得されない
手順: 1. リソースフォルダにEffra_Std_Reg.ttfというフォントを追加しました。 2.アプリケーションで提供されるフォントにInfo.plistという要素を追加し、ビルドアクションを設定しました。 3. App.XAMLでスタイルを作成しました。 4.これらのスタイルをマイページのXAMLに追加しました。
すべて上記は、FontAttributesが設定されていないLabelに対してうまく機能します。スタイルやラベル自体にFontAttributes = "Bold"を設定すると、すぐにシステムフォントが使用されます。メモは、これがSimulatorで動作することを確認してください。
FontFamilyは、の名前がttfファイル内で定義されていることを知っています - ttfファイル名ではありません。
iOS 10.3.3を実行しているiPadの場合。
マイApp.XAMLは次のとおりです。
<?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>
そして、私のページXAML(抜粋)は次のとおりです。
<Label Grid.Row="4"
Grid.Column="1"
Style="{StaticResource BoldLabelStyle}"
Text="QWERTYUIOPASDFGHJKLZXCVBNM" />