如何将点数转换为XCode字体大小

3
我有一个包含iOS应用程序设计的Photoshop文件,我需要获取所有标签和其他控件的字体大小信息。默认情况下,Photoshop中显示的大小以点为单位,那么我该如何将此值转换为XCode中的值?例如:
感谢您的帮助。

1
这不是相同的值吗? - Droppy
2
@Droppy 不是一样的。看看这个答案:https://dev59.com/0nNA5IYBdhLWcg3wL6sc - Karthik Sivam
2
https://dev59.com/GGoy5IYBdhLWcg3wA5aC - Muhammad Adnan
这只是告诉我两个系统都使用点的事实,因此我才提出问题。 - Droppy
@Droppy抱歉!我的错。 - Karthik Sivam
谢谢大家的评论,但是将这些值相互转换的最佳方法是什么呢? - FrozenHeart
3个回答

10

基于 @MichaelCrawford 的答案,如果 AdobePoint = 1/72 英寸,则我们可以计算出转换公式到 ApplePoints。

我们需要知道的是:

  • Photoshop 文件分辨率(px/inch)- Res
  • Photoshop 模拟器大小,即为哪种 iPhone 因素创建,如 @2x, @3x - Factor
  • Photoshop 中 AdobePoints 的文本大小 - PSFont

然后,据我所知,您可以像这样计算 iPhone 字体大小(实际上等于 iPhone 点数)

iPhoneFontSize = (Res / 72) * PSFont / Factor

例子: 你有一个适用于 iPhone 5 的模型,但所有媒体也适用于 iPhone6+,那么模型大小就是 iPhone 5 大小 * 3 = 960x1704,分辨率为 401(适用于 iPhone6+)。此模型中 TabBar 标题字体大小为 5 pt。

因此,在 iPhone 上,您应该设置大小为 401/72 * 5 / 3 = 9.28。

如果文件的分辨率为 72(Web),则只需按照通常计算控件或 imageView 大小的方式将 PSFontSize 除以 factor。


我一直在尝试理解你的逻辑,但似乎有点迷失。请问我是否走在正确的道路上?-> 我有一个设计师为6 Plus开发的PSD设计稿 - 其中一个标签是55个点,PSD中的图像大小设置为72像素/英寸。开发人员想要使用像素大小-这样做的方式正确吗?如果我要复制这个公式,对于我的情况,这看起来是否正确= 401/72 * 55pt / 3 = 102个点?这将是点还是像素?-提前致谢 - Rahul Dighe
@Rahul,这是苹果字体大小点,它会根据比例因子自动更改文本大小。在比例因子=1时,它与像素相同。开发人员只需将其设置为标签或文本字段的字体大小即可。另一种获取此值的方法是设置PS以以像素为单位进行测量:转到PS设置(cmd+K)->单位和规则->单位块->类型组合框->选择像素。然后将此值除以您的因子(在您的情况下为3)。 - alexey.metelkin
谢谢,计算对我有用!@alexey.hippie - KarenAnne

1
"Adobe Point"是英寸的1/72,即0.01389英寸。
iPhone 6屏幕在对角线为4.7英寸的显示器上有376x667个“Apple Points”。现在如果我能记得我的代数...已经很久了。
376 ^ 2 + 667 ^ 2 = d ^ 2
其中“d”是沿对角线的Apple Points计数。“d ^ 2”为579,578; d为其平方根或761.3。将其除以4.7英寸,我们得到每英寸161.98个Apple Points。
因此,一个Apple Point略小于半个Adobe Point的高度。
你认为0.444的因子可行吗?或者是2.25的倒数。假设你的Photoshop图像有14点大小,在Xcode中,你需要31个Points。"

不幸的是,它看起来并不一样。在 Photoshop 中,我有8pt,就像问题中的图像一样,所以我在 Interface Builder 中设置了8 * 2.25 = 18,但我认为它看起来并不一样--http://i.imgur.com/4Ue4Tgz.png。我错了吗? - FrozenHeart
尝试在实际设备上加载您的界面构建器设计。 - Mike Crawford
我现在无法做到。你确定这会对解决问题有帮助吗? - FrozenHeart
你至少能够看到差异。 - Mike Crawford
你需要考虑PS图像的分辨率,即如果它不是72像素/英寸,那么你应该进行转换,同时还要考虑设备因素-将其转换为iPhone的点数。 - alexey.metelkin

0

尝试创建一个非常简单的应用程序,其中包含各种不同的文本大小,所有这些大小都使用Xcode点 - 我称之为“Apple Points”。因此,您可以拥有Helvetica 6、Helvetica 7、Helvetica 8等大小,一直到比此设计所需的明显更大的大小。

然后将您的Photoshop文件打印在纸上。请注意,您无法真正依赖屏幕像素具有任何特定的大小。具有小屏幕的高分辨率监视器也会有较小的像素。

将纸质Photoshop设计与屏幕上的文本进行比较。那应该给您一个比例的想法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接