我需要从.ttf文件

时间:2017-08-19 06:35:28

标签: xamarin xamarin.ios xamarin.android xamarin.forms

我正在尝试将字体设置为我的系统并在我的应用程序中使用它它适用于Android但它不适用于IOS - 首先我在IOS项目的资源中添加了.ttf文件

enter image description here

然后将此字体添加到Entitlements.plist

enter image description here

对于Android,我添加到资产文件夹

enter image description here

然后主应用程序中的应用程序文件我在字典资源中添加了此代码

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

对于标签我添加了这样的风格

<Label HorizontalOptions="StartAndExpand" 
   Margin="20,5,0,0"
   x:Name="lblForgotPassword"
   Text="Forgot Password"
   Style="{StaticResource LableStyle}">
</Label>

但它在Android中运行良好,但在IOS中无效?为什么?

1 个答案:

答案 0 :(得分:2)

我认为iOS上的字体系列名称不正确。 macOS / iOS字体名称不是文件名sans扩展名,名称是在ttf本身内定义的。

我的macOS上的DroidSansArabic.ttf和我在iOS上使用的B Tabassom使用的姓氏为 label.FontFamily = Device.OnPlatform( iOS: "B Tabassom", Android: "DroidSansArabic.ttf#DroidSansArabic", WinPhone: null );

因此在Forms中使用它将是:

ttf

由于周围有许多DroidSansArabic.ttf,请通过在macOS的Font Book中打开UIAppFonts并查看标题栏来验证您的字体系列名称:

enter image description here

如果您的macOS已安装,请查看名称列:

enter image description here

更新:您还错误.plist中的Info.plist密钥,它位于<key>UIAppFonts</key> <array> <string>DroidSansArabic.ttf</string> </array> </dict>

app.UseCors(b => b.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().AllowCredentials());