更新:

从iOS 7开始,您不需要使用Core Text来呈现自定义的阿拉伯字体.您可以将UILabel和/或UITextView与NSAttributedString一起使用.结果与使用Core-Text的结果相同.但是,根据您的要求,使用Core Text仍然是更好的选择.

更新:

我已将此报告为Apple的错误,但我不确定他们何时会添加对阿拉伯字体的支持.目前,没有简单的方法可以做到这一点.我最终使用默认的系统字体,这不是很好.

原始信息

我确实设法构建了一个使用自定义阿拉伯字体的古兰经应用程序.我使用已知的阿拉伯字体与Core Text框架来获得所需的结果.通过检查应用程序商店中提供的应用程序Quran Presenter for iPad,您可以看到我最终得到的结果.

这里有一些示例代码可以帮助您:

- (CTFontRef)newCustomFontWithName:(NSString *)aFontName

ofType:(NSString *)type

attributes:(NSDictionary *)attributes {

NSString *fontPath = [[NSBundle mainBundle] pathForResource:aFontName ofType:type];

NSData *data = [[NSData alloc] initWithContentsOfFile:fontPath];

CGDataProviderRef fontProvider = CGDataProviderCreateWithCFData((CFDataRef)data);

[data release];

CGFontRef cgFont = CGFontCreateWithDataProvider(fontProvider);

CGDataProviderRelease(fontProvider);

CTFontDescriptorRef fontDescriptor = CTFontDescriptorCreateWithAttributes((CFDictionaryRef)attributes);

CTFontRef font = CTFontCreateWithGraphicsFont(cgFont, 0, NULL, fontDescriptor);

CFRelease(fontDescriptor);

CGFontRelease(cgFont);

return font;

}

- (CATextLayer *)customCATextLayer {

NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:

[NSNumber numberWithFloat:24.f], (NSString *)kCTFontSizeAttribute,

[NSNumber numberWithInt:1], (NSString *)kCTLigatureAttributeName,

nil];

CTFontRef font = [self newCustomFontWithName:@"PDMS_Saleem_QuranFont-signed"

ofType:@"ttf"

attributes:attributes];

CATextLayer *normalTextLayer = [[CATextLayer alloc] init];

normalTextLayer.font = font;

normalTextLayer.string = NSLocalizedString(@"Sample", nil);

normalTextLayer.wrapped = YES;

normalTextLayer.foregroundColor = [[UIColor blackColor] CGColor];

normalTextLayer.fontSize = 24.f;

normalTextLayer.alignmentMode = kCAAlignmentCenter;

normalTextLayer.frame = CGRectMake(0.f, 10.f, 320.f, 32.f);

CFRelease(font);

return [normalTextLayer autorelease];

}

- (void)viewDidLoad {

[super viewDidLoad];

CATextLayer *normalTextLayer = [self customCATextLayer];

[self.customView.layer addSublayer:normalTextLayer];

}

请注意,我正在使用CATextLayer和CTFontRef.这种方法存在一些问题.

1.您将不得不忍受选定的“自定义阿拉伯字体”中的问题.

2.您必须使用使用字体支持的扩展字符的阿拉伯语文本.

HTH.

html文档含有阿拉伯文,html – iOS中包含自定义字体的阿拉伯文字相关推荐

  1. python docx 合并文档 图片_Python检查Word文件中包含特定关键字的所有页码

    推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社图书详情:配套资源:用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系 ...

  2. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

  3. Facebook 游戏开发更新文档 API 参考文档 v6.0

    Facebook 游戏开发更新文档 API 参考文档 v6.0 更新日志 1.排行榜 此版本全新推出排行榜 API!提供一套强大的 API, 使得游戏可获取排行榜.查询得分 情况和设置新分数(支持分数 ...

  4. 大学“电路分析基础”试题合集第六章(文末附PDF文档与Word文档)

    大学"电路分析基础"试题合集第一章 大学"电路分析基础"试题合集第二章 大学"电路分析基础"试题合集第三章 大学"电路分析基础&q ...

  5. 干掉 Postman?测试接口直接生成API文档,这个文档工具真香!

    欢迎关注方志朋的博客,回复"666"获面试宝典 实不相瞒我的收藏夹里躺着很多优质的开源项目,我有个爱好平时遇到感兴趣的开源项目都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享 ...

  6. 如何利用 nbconvert将 IPYNB文档转换 Markdown文档?

    简 介: IPYNB文件是现在基于IPython开发工程人员记录和分析处理算法和数据记录文档.将该文档转换成其它格式可以方便面进行思想共享,工作汇报等.利用 nbconvert可以很方便将ipynb的 ...

  7. 实施文档_Word 2010文档处理案例教程

    Word 2010文档处理案例教程 ISBN:978-7-80243-928-3/02 作者:黄桂林 江义火 郭燕 定价:38.00元 出版社:航空工业出版社 适用层次:通用 出版日期:2019-10 ...

  8. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  9. html在分页功能中如何实现当前页面的页码样式与其他页面不同_如何使用word文档?word文档使用技巧教程?...

    Word文档使用方法与教程: 使用正确的部分和章节标题 我们在前面的章节中介绍了预设样式,但是这些样式可用于快速创建章节,子标题和标题页.在"主页"功能区选项卡中找到样式,可以在其 ...

  10. VC++ 单文档和多文档应用程序

    下面来看一下什么是VC++ MFC 单文档和多文档应用程序: VC++ 2012,新建一个工程:工程类型选择 MFC应用程序: 然后在应用程序向导中,选择应用程序类型为 单文档: 最后生成的基本应用程 ...

最新文章

  1. 成功有感之给年轻人的10个忠告
  2. Linux_SystemLogManager
  3. 关于 golang 代理设置的
  4. java jediscluster_方便jediscluster操作的工具类
  5. json 和 jsonp
  6. java怎么设置不同事件_activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便...
  7. 敏捷软件开发之结对编程
  8. 测试网络稳定性_Redmi Note8 Pro游戏测试,网络稳定性竟比荣耀9X Pro还好?
  9. springMVC之mvc:interceptors拦截器的用法
  10. 西门子g120c面板参数设定_西门子PCS7模拟量单位设置
  11. python生成wps文件_使用Python操作XLS文件(wps中叫et)
  12. android对象识别实验报告,20162302 实验四《Android程序设计》实验报告
  13. GitHub使用笔记
  14. MATLAB矩阵合并
  15. beyond compare 对class文件反编译及比较
  16. python数据分析之pandas
  17. c语言编程后怎么做成软件,编程软件是用来编程的,那编程软件是怎么做出来的?...
  18. Python编程基础——编程环境准备工作
  19. 练习-Java字符串之String类常用方法之文件名与邮箱验证
  20. 三相功率测量,两表法和三表法区别

热门文章

  1. OpenGL游戏程序设计——————关于这本书
  2. 九段系统服务器,人力资源一卡通考勤系统
  3. opencv2.4.9 + vc2012配置过程记录
  4. java eclipse计算器_用eclipse制作计算器。
  5. u-boot-2012.04.01 移植笔记
  6. 小米5短接点 | 小米红米高通短接9008教程视频教程 | 高通9008驱动下载 | 不拆机怎么直接进9008 | 什么线能直接进9008
  7. matlab机器人工具箱puma560模型学习
  8. pandas实现上采样和下采样
  9. matlab求偏相关系数,计算皮尔逊相关系数t检验——Matlab
  10. Python 3.8.7安装教程