Thu*_*Moh 7 iphone fonts arabic custom-font ios4
我正在尝试制作一个主要显示阿拉伯语言内容的iphone应用程序.我想使用自定义阿拉伯字体来显示该内容,而不是iPhone默认的阿拉伯字体.我使用了以下代码:
- (void)viewDidLoad {
[super viewDidLoad];
[arabicLabel setFont: [UIFont fontWithName: @"Simple Indust Shaded" size: 20]];
arabicLabel.text = @"?????? ?????";
}
Run Code Online (Sandbox Code Playgroud)
其中arabicLabel是IBOutlet UILabel.我将标签放在App资源中,并将其作为UIAppFont数组项添加到info.plist文件中.字体也是Unicode.
当我在模拟器上运行此代码时,标签显示默认的阿拉伯字体(不是我的自定义字体); 但是如代码中所述,它将其大小设置为20!
我不明白我在这里做错了什么...我知道在info.plist文件中我必须添加带扩展名(ttf)的字体文件名,我就这样做了.另外,我知道在前面的代码中我不得不把实际的字体名称放在文件名中,所以我在Mac上打开了文件并使用了文件打开时出现的标题(Simple Indust Shaded).
我错过了什么吗?除了Unicode之外,是否还有对自定义字体的额外要求?
注意:我为自定义英文字体做了相同的程序,它有效!...
Hej*_*azi 10
这似乎是iOS中的一个错误.
您可能知道,阿拉伯文本需要在呈现之前进行整形,这意味着将基本字母(Unicode:0600-06FF)转换为其正确的相应上下文字母(Unicode:FE70-FEFF).
iOS会自动为阿拉伯语文本执行此预处理,但出于某种原因,它会忘记自定义字体,并在呈现连接字母时使用系统默认字体.
所以,这是iOS中的一个错误,你应该等待它解决.
但是,如果您不能等待,则可以使用此解决方法: 在呈现文本之前手动预处理文本.这将允许跳过iOS预处理阶段,这会导致此问题,从而使用您的自定义字体呈现文本.
如果要测试此解决方案,只需复制以下行并在项目中尝试:
arabicLabel.text = @"????? ?????";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8751 次 |
| 最近记录: |