iPhone设备字体详解
做iPhone开发的同学一定对:UIFont systemFontOfSize、boldSystemFontOfSize、italicSystemFontOfSize很熟悉,但你们知道它们都是什么字体吗?这篇文章将会带大家认识一下iPhone的字体。
一、默认字体
首先我们用如下代码看看,我们的默认字体是什么:
NSLog(@%@\n, [UIFont systemFontOfSize:10]);NSLog(@"%@\n", [UIFont boldSystemFontOfSize:10]);NSLog(@"%@\n", [UIFont italicSystemFontOfSize:10]);<UICTFont: 0x8ca7700> font-family: ".HelveticaNeueInterface-M3"; font-weight: normal; font-style: normal; font-size: 10.00pt
<UICTFont: 0x8b81b20> font-family: ".HelveticaNeueInterface-MediumP4"; font-weight: bold; font-style: normal; font-size: 10.00pt
<UICTFont: 0x8ca9eb0> font-family: ".HelveticaNeueInterface-ItalicM3"; font-weight: normal; font-style: italic; font-size: 10.00pt我们能看到这样的字符串:".HelveticaNeueInterface"
我们再用下面这个代码看看系统到底支持哪些字体:
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indexFamily, indexFont;
for (indexFamily = 0; indexFamily < [familyNames count]; ++indexFamily)
{
NSLog(@"Family name: %@", [familyNames objectAtIndex:indexFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:[familyNames objectAtIndex:indexFamily]]];
for (indexFont = 0; indexFont < [fontNames count]; ++indexFont)
{
NSLog(@" Font name: %@", [fontNames objectAtIndex:indexFont]);
}
}Family name: Thonburi
Font name: Thonburi-Bold
Font name: Thonburi
Font name: Thonburi-Light
Family name: Snell Roundhand
Font name: SnellRoundhand-Black
Font name: SnellRoundhand-Bold
Font name: SnellRoundhand
Family name: Academy Engraved LET
Font name: AcademyEngravedLetPlain
Family name: Marker Felt
Font name: MarkerFelt-Thin
Font name: MarkerFelt-Wide …… …… Family name: Helvetica Neue
Font name: HelveticaNeue-BoldItalic
Font name: HelveticaNeue-Light
Font name: HelveticaNeue-Italic
Font name: HelveticaNeue-UltraLightItalic
Font name: HelveticaNeue-CondensedBold
Font name: HelveticaNeue-MediumItalic
Font name: HelveticaNeue-Thin
Font name: HelveticaNeue-Medium
Font name: HelveticaNeue-Thin_Italic
Font name: HelveticaNeue-LightItalic
Font name: HelveticaNeue-UltraLight
Font name: HelveticaNeue-Bold
Font name: HelveticaNeue
Font name: HelveticaNeue-CondensedBlack …… ……
二、Helvetica字体详解
Helvetica是一种被广泛使用的的西文字体,于1957年由瑞士字体设计师爱德华德·霍夫曼(Eduard Hoffmann)和马克斯·米耶丁格(MaxMiedinger)设计。
Helvetica是由米耶丁格和爱德华德·霍夫曼在瑞士哈斯铸造所作为排版铅字制作的。当时人们熟悉的是“国际字体风格”(也称为“瑞士风格”),比如 Josef Muller-Brockmann 在1896年推广的 Akzidenz Grotesk 这类无衬线字体,而哈斯希望能设计一套新的无衬线字体能够与 Akzidenz Grotesk 在瑞士市场上竞争。最初的名称是“Neue Haas Grotesk”,意为“哈斯的新无衬线铅字”,后来曾考虑改为Helvetia(源自拉丁文的“瑞士”一词),不过最终改为 Helvetica,在拉丁文中意为“瑞士的”。
Helvetica被广泛用于全世界使用拉丁字母和西里尔字母的国家。同样的风格也被移植到希腊字母、希伯来字母和汉字。
历史
Helvetica是由米耶丁格和爱德华德·霍夫曼(Eduard Hoffmann)在瑞士哈斯铸造所(Haas’sche Schriftgießerei)作为排版铅字制作的。当时人们熟悉的是“国际字体风格”(也称为“瑞士风格”),比如 Josef Muller-Brockmann 在1896年推广 Akzidenz Grotesk 这类在50多年前制作的无衬线字体,并由德国铸造所 Berthold 持续进行市场推广。因此哈斯希望能设计一套新的无衬线字体能够与 Akzidenz Grotesk 在瑞士市场上竞争。最初的名称是“Neue Haas Grotesk”,意为“哈斯的新无衬线铅字”,后来哈斯的德国母公司斯滕佩尔(Stempel)在1960年曾考虑将名字改为Helvetia(源自拉丁文的“瑞士”一词),不过最终改为 Helvetica,在拉丁文中意为“瑞士的”,以使其更具有国际市场竞争力。现在,Helvetica由Linotype公司所拥有,Stempel是它的子公司。
应用
Helvetica被广泛用于全世界使用拉丁字母和西里尔字母的国家。同样的风格也被移植到希腊字母、希伯来字母和汉字。加拿大政府的联邦认证制度(corporate identity program)也使用了这个字体及其各种版本。Helvetica被大量使用在标志、电视、新闻标题以及无数的商标。 如3M、爱克发、BASF、美国航空、American Apparel、BMW、Crate & Barrel、Epson、德国汉莎航空公司、Fendi、J. C. Penney、Jeep、川崎重工业、Knoll、英特尔、无印良品、雀巢、松下、Microsoft、三菱电机、摩托罗拉、丰田、Parmalat、SAAB(Helvetica 83 粗体)、三星、渣打银行、Staples、Target、Texaco等数百间主要企业的标志都是使用Helvetica字体。
Helvetica是Mac OS系统的默认字体。Mac OS X系统中也包含Helvetica和Helvetica Neue字体。Nimbus Sans字体(GNU/Linux系统中的默认字体)也是基于Helvetica的,Bitstream公司的Swiss 721 BT字体也是一样(从这个字体名字就可以看出)。Helvetica在政府部门和公共机构中也获得广泛使用,例如美国华盛顿和波士顿的地铁和大众交通系统采用了该字体。新的纽约地铁也将标志字体从Akzidenz Grotesk体转为Helvetica字体。
Helvetica是苹果电脑的默认字体,微软常用的Arial字体也来自于它。2007年是helvetica诞生50年,作为在平面设计和商业上非常普及和成功的一款字体,英国导演Gary Hustwit专门为她拍摄了一部纪录片《Helvetica》。
三、添加自己的字体
1、要添加方正兰亭字体,首先需要一个ttf的字体库。
2、然后把这个文件添加到工程里面
3、在plist里面添加
添加成功后就可以使用啦!
参考:
http://baike.baidu.com/view/1649051.htm
http://www.cocoachina.com/bbs/simple/?t10620.html
http://www.cocoachina.com/bbs/read.php?tid-71703.html
iPhone设备字体详解的更多相关文章
- Linux DTS(Device Tree Source)设备树详解之二(dts匹配及发挥作用的流程篇)【转】
转自:https://blog.csdn.net/radianceblau/article/details/74722395 版权声明:本文为博主原创文章,未经博主允许不得转载.如本文对您有帮助,欢迎 ...
- Linux dts 设备树详解(二) 动手编写设备树dts
Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 前言 硬件结构 设备树dts文件 前言 在简单了解概念之后,我们可以开始尝试写一个 ...
- Linux dts 设备树详解(一) 基础知识
Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 1 前言 2 概念 2.1 什么是设备树 dts(device tree)? 2. ...
- 23.Linux-块设备驱动(详解)
通过上节的块设备驱动分析,本节便通过内存来模拟块设备驱动 参考内核自带的块设备驱动程序: drivers/block /xd.c drivers/block /z2ram.c 1.本节需要的结构体如 ...
- Linux下usb设备驱动详解
USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核已经做好了,我们可以不管,我们只需要了解它的功能.形象的说,USB的bus驱动相当于铺出一条路来,让所有的信息都可以通过这条USB ...
- Linux 设备树详解【转】
转自:http://www.pianshen.com/article/428276673/;jsessionid=D90FC6B215155680E0B89A6D060892D4 本文基于天嵌E9V3 ...
- web字体详解@font-face
一:字体的下载(http://www.dafont.com/new.php) 二:选择需要的字体并下载( Download ) 三:下载后并解压 四:获取@font-face所需要字体的格式.eot, ...
- 手把手教Linux驱动3-之字符设备架构详解,有这篇就够了
一.Linux设备分类 Linux系统为了管理方便,将设备分成三种基本类型: 字符设备 块设备 网络设备 字符设备: 字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程 ...
- Linux磁盘管理之设备文件详解04
Linux一切接文件,除了普通文件和目录文件,还包括一些其它的特殊文件:块设备文件.字符设备文件.套接字文件.链接文件等.今天这里主要说一下常见的块设备文件和字符设备文件,这2类是最常见的设备文件类. ...
随机推荐
- nodejs: C++扩展
Nodejs的C++扩展首先保证nodejs和v8都正确安装 下载NodeJS源码,我的放在D盘. NodeJS的C++扩展要用VS2010开发,新建一个空的Win32控制台项目,右键——属性,在常规 ...
- FreeMarker与Spring MVC的结合应用
Freemarker是一种基于java的模板引擎.SpringMVC对FreeMarker进行一些配置的支持,能够利用Freemarker只关注表现层以及Spring MVC的三层分离的特点,向前端输 ...
- Coins(HDU 2844):一个会超时的多重背包
Coins HDU 2844 不能用最基础的多重背包模板:会超时的!!! 之后看了二进制优化了的多重背包. 就是把多重转变成01背包: 具体思路见:http://www.cnblogs.com/tt ...
- hexo框架-next主题-github搭建个人博客
IT`huhui 的前言录 我在GITHUB的个人站点:http://ithuhui.cn 这里遇到的很多问题都是亲身解决后写的.还有遇到不懂可以邮件M我 在这里要感谢浮生志的博客教程,很多我一开始不 ...
- SQL Server 利用锁提示优化Row_number()-程序员需知
网站中一些老页面仍采用Row_number类似的开窗函数进行分页处理,此时如果遭遇挖坟帖的情形可能就需要漫长的等待且消耗巨大.这里给大家介绍根据Row_number()特性采用特定锁Hint提升查询速 ...
- SQLSERVER 2012之AlwaysOn -- 一次硬件升级引发的问题
这是上周遇到的一个案例:对已有的硬件进行升级而引发的问题,期间还触发了一个比较严重的BUG,可谓多灾多难:不过值得庆幸的是,在一连串连锁问题出现的时候,并没有出现人工操作失误(这往往是在处理故障中风险 ...
- windows上自动设置java环境变量的脚本
近期打算学习安卓开发,于是乎要准备java开发环境,安装好jdk后,就要设置java环境变量,java环境变量要设置JAVA_HOME,Path,CLASSPATH三个值,每次配置查百度复制粘贴都很麻 ...
- 基于 IdentityServer3 实现 OAuth 2.0 授权服务【密码模式(Resource Owner Password Credentials)】
密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码.客户端使用这些信息,向"服务商提供商"索要授权 ...
- quartznet笔记
http://sourceforge.net/projects/quartznet/files/quartznet/
- 作业七:团队项目——Alpha版本冲刺阶段-01
昨天进展:准备开发环境,安装软件. 今天安排:软件框架设计. 小组一共三人,陈芝航因家里有事,与我们进行了QQ视屏会议.