做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&szlig;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设备字体详解的更多相关文章

  1. Linux DTS(Device Tree Source)设备树详解之二(dts匹配及发挥作用的流程篇)【转】

    转自:https://blog.csdn.net/radianceblau/article/details/74722395 版权声明:本文为博主原创文章,未经博主允许不得转载.如本文对您有帮助,欢迎 ...

  2. Linux dts 设备树详解(二) 动手编写设备树dts

    Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 前言 硬件结构 设备树dts文件 前言 在简单了解概念之后,我们可以开始尝试写一个 ...

  3. Linux dts 设备树详解(一) 基础知识

    Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 1 前言 2 概念 2.1 什么是设备树 dts(device tree)? 2. ...

  4. 23.Linux-块设备驱动(详解)

    通过上节的块设备驱动分析,本节便通过内存来模拟块设备驱动  参考内核自带的块设备驱动程序: drivers/block /xd.c drivers/block /z2ram.c 1.本节需要的结构体如 ...

  5. Linux下usb设备驱动详解

    USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核已经做好了,我们可以不管,我们只需要了解它的功能.形象的说,USB的bus驱动相当于铺出一条路来,让所有的信息都可以通过这条USB ...

  6. Linux 设备树详解【转】

    转自:http://www.pianshen.com/article/428276673/;jsessionid=D90FC6B215155680E0B89A6D060892D4 本文基于天嵌E9V3 ...

  7. web字体详解@font-face

    一:字体的下载(http://www.dafont.com/new.php) 二:选择需要的字体并下载( Download ) 三:下载后并解压 四:获取@font-face所需要字体的格式.eot, ...

  8. 手把手教Linux驱动3-之字符设备架构详解,有这篇就够了

    一.Linux设备分类 Linux系统为了管理方便,将设备分成三种基本类型: 字符设备 块设备 网络设备 字符设备: 字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程 ...

  9. Linux磁盘管理之设备文件详解04

    Linux一切接文件,除了普通文件和目录文件,还包括一些其它的特殊文件:块设备文件.字符设备文件.套接字文件.链接文件等.今天这里主要说一下常见的块设备文件和字符设备文件,这2类是最常见的设备文件类. ...

随机推荐

  1. java图形化编程

    转载 学习Java Swing图形化编程,我们首先要了解三个最基本的概念:顶层容器,控件,布局. 下面就来介绍一下这三个基本概念 1.顶层容器 什么是顶层容器?当我们使用Java进行图形编程的时候,图 ...

  2. font-face跨域办法

    font-face是现在比较流行的技术,可以矢量化你的图标,更改颜色方便等等.如果你想更进一步了解他,请点击这里(CSS3 icon font完全指南)今晚有网友问到font-face跨域在nginx ...

  3. 对于C++窗口编译一闪而过的解决方法 (DEV CPP下)

    对于C++窗口编译一闪而过的解决方法 首先来看一个简单的程序(编译环境为 DEV C++.):  #include <iostream>  int main()  {      std:: ...

  4. JQuery学习(选择器-基本-*)

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  5. C#函数式编程之部分应用

    何谓函数式编程 相信大家在实际的开发中,很多情况下完成一个功能都需要借助多个类,那么我们这里的基本单元就是类.而函数式编程则更加细化,致使我们解决一个功能的基本单元是函数,而不是类,每个功能都是由多个 ...

  6. 【Leetcode】【Medium】Group Anagrams

    Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...

  7. solr与.net系列课程(二)solr的配置文件及其含义

    solr与.net系列课程(二)solr的配置文件及其含义  本节内容还是不会涉及到.net与数据库的内容,但是不要着急,这都是学时solr必学要掌握的东西,solr可不是像其他的dll文件一样,只需 ...

  8. 无线客户端框架设计(4):自定义生命周期的设计(iOS篇)

    首先要确定一点,我们的App,要基于XIB文件进行编程,而不是在每个相应的ViewController里面去手动创建页面的每个控件.这样做的好处是,将页面布局与业务逻辑彻底隔离.于是我们可以把xib的 ...

  9. 浅谈压缩感知(三十):压缩感知重构算法之L1最小二乘

    主要内容: l1_ls的算法流程 l1_ls的MATLAB实现 一维信号的实验与结果 前言 前面所介绍的算法都是在匹配追踪算法MP基础上延伸的贪心算法,从本节开始,介绍基于凸优化的压缩感知重构算法. ...

  10. cmd命令生成android签名证书

    cmd命令生成android签名证书,有空在写一篇eclipse导出带签名的apk,这里面包括生成新的签名.现在还是讲讲在cmd怎么操作生成签名证书. 1.dos下进入JDK的bin目录 运行如下命令 ...