objective-c - UIFont 的磅值到底是多少?

标签 objective-c ios fonts uikit uifont

我很难准确理解 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 术语中的“点”是什么?即我上面的方法是错误的,如果我使用其他东西,我会看到字体在 72 点处是 163 像素?还是纯粹是从其他东西定义一个点?

最佳答案

字体有一个内部坐标系,可以把它想象成一个单位正方形,其中一个字形的矢量坐标被指定为任意大小以适应字体中的所有字形 +- 字体设计者选择的任意数量的边距。

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

因此,在 72 点处绘制“A”会告诉您它将是在 36 点处以相同字体绘制的“A”的两倍高 - 绝对没有其他关于实际位图大小的信息。

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

关于objective-c - UIFont 的磅值到底是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11776767/

相关文章:

ios - 将 NSData 与 NSDictionary 参数一起传递给 Web 服务

ios - 如何在 iOS 13 的 NFCTagReaderSession 中读取不同类型的 NFC 标签?

android - 当应用程序未运行(iphone/android)时,在远程触发器上创建(重复高音)警报,就像查找我的 iPhone 一样

jquery - 如何通过一次更改 telerik 控件的所有字体

html - 受所用字体影响的表格布局

iphone - 如何使用 URL 从 xcode 以 Debug模式启动应用程序

ios - 从 IOS 中的返回键执行按钮单击

objective-c - 我需要在iPad上播放没有声音的视频

ios - 是否可以将贴纸包升级为 iMessage 应用程序?

internet-explorer - 在 IE 中渲染 Open Sans 字体