我很难理解UIFont的点数到底意味着什么.这不是像素,也不是点的标准定义,即它们与1/72英寸有关.

我用-[NSString sizeWithFont:]种不同大小的字体计算出像素大小,得到如下结果:

| Point Size | Pixel Size |
| ---------- | ---------- |
| 10.0       | 13.0       |
| 20.0       | 24.0       |
| 30.0       | 36.0       |
| 40.0       | 47.0       |
| 50.0       | 59.0       |
| 72.0       | 84.0       |
| 99.0       | 115.0      |
| 100.0      | 116.0      |

(我做了[@"A" sizeWithFont:[UIFont systemFontOfSize:theSize]]次)

看看72.0点大小,这不是1英寸,因为这是在一个DPI为163的设备上,所以1英寸应该是163.0像素,对吗?

有人能用UIFont个词来解释"点"是什么吗?i、 e.我上面的方法是错误的吗?如果我使用其他方法,我会看到字体在72点处有163像素?还是说一个点纯粹是由其他东西定义的?

推荐答案

字体有一个内部坐标系,可以将其视为一个单位正方形,在该坐标系内,字形的矢量坐标以任意大小指定,以容纳字体+-中的所有字形-字体设计师 Select 的任何边距.

在72.0点处,字体的单位平方为1英寸.字体y的字形x相对于这个平方英寸具有任意大小.因此,字体设计师可以使字体相对于其他字体显得大或小.这是字体"字符"的一部分.

因此,在72点处画一个"A"可以告诉你,它将是在同一字体中在36点处画一个"A"的两倍高,而且绝对没有其他关于实际位图大小的信息.

对于给定字体,确定点大小和像素之间关系的唯一方法是测量它.

Objective-c相关问答推荐

等到多个网络请求都执行完毕 - 包括它们的完成块

如何通过仅更改高度而不更改宽度来调整 UILabel 的大小?

使用 AVAudioplayer 在后台播放音乐

Objective C for循环中断并继续

使用 ARC,什么更好:alloc 或 autorelease 初始化程序?

验证应用内购买的收据

为 iphone 应用程序设置自动构建服务器的最佳实践?

如何使用键值编码判断对象是否存在键?

如何在目标 C 中创建单例类

我怎样才能拥有一个同时包含图像和文本的 UIBarButtonItem?

切换隐私设置将杀死应用程序

CoreData 关系故障?

Objective C 静态类变量

iOS:使用设备修饰符加载 xib 文件?

iPhone 键盘、完成按钮和 resignFirstResponder

如何以编程方式移动 UIScrollView 以集中在键盘上方的控件中?

如何检测 NSString 是否为空?

Select 具有受支持架构的目标以便在此设备上运行

既然我正在使用 Core Data,如何对我的模型进行单元测试?

如何创建 .dSYM 文件?