CGContextShowTextAtPoint函数绘制中文

其实iOS中已经包含了中文字体。这不奇怪,否则iPhone是通过什么来显示中文?使用下列代码,我们可以查看iPhone上支持的所有字体名:

NSArray *fontFamilies = [UIFontfamilyNames];

for(NSString *fontFam in fontFamilies) {

NSLog(@"=========%@=========",fontFam);

NSArray *fontNames = [UIFontfontNamesForFamilyName:fontFam];

for (NSString* fontName in fontNames) {

NSLog(@"%@",fontName);

}

}

其中就有两个中文字体:

=========Heiti SC=========

STHeitiSC-Medium

STHeitiSC-Light

⋯⋯

=========Heiti TC=========

STHeitiTC-Medium

STHeitiTC-Light

这是两个系统内置的字体族,一个简体黑体,一个是繁体黑体。这两个字体族都分别包含中、轻两种不通字重的字体。

注:黑体是一种无衬线字体(san-serif)。所谓衬线字体,是指末端被加强的字体,这种字体如Times、Times New Roman、宋体,易于识别。而无衬线字体的笔画粗细是一致的,没有末端加强,因此不易识别但比较醒目。对于某些软件,比如电子阅读器,一般应使用宋体等衬线字体 ( serif) 。

由于iOS系统中只提供一种中文字体黑体,对于文本阅读器这类中文软件,我们只能在程序中提供自己的字体文件来增加额外的字体支持。关于在程序中使用自定字体,请参考另一篇博文《iOS 定制应用程序字体 》

然后是加载这两个中文字体。请使用 CGFontCreateWithFontName函数:

CGFontRef font_ref =CGFontCreateWithFontName((CFStringRef)@"STHeitiTC-Medium");

接下来的过程正如《iOS定制应用程序字体》中所述的一模一样,映射unichar为Glyphs,然后调用 CGContextShowTextAtPoint函数绘制中文。

 

 


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值