【问题标题】:UIFont: Font size differsUIFont:字体大小不同
【发布时间】:2014-02-13 20:42:26
【问题描述】:

我正在通过自定义函数为我的view 中的所有subviews(例如UILabels)设置自定义字体。但是,如果我尝试仅通过

更正特定 UILabels 的字体大小
[lbl_EXAM_Statistics setFont:[UIFont fontWithName:@"PTSans-Regular" size:13]];

从 Screendesign 给我的内容来看,13 点似乎有点“太小”了。 在 psd 文件中,准确地说是 13pt。

为什么 13pt 字体大小与我的应用中的 13pt 字体大小不同?

在截图中,上面的文字来自psd文件,底部的文字来自iphone模拟器。

如果我想接近从 Screendesign 到我的应用程序的文本大小,我将不得不使用 18pt - 但我不能浪费时间玩弄如何获得确切的 pt,这对于所有字体来说都是一个巨大的浪费尺寸我必须直接指定。所以一定有更好的办法。

【问题讨论】:

  • 在上面的例子中看起来要大很多。还有,你用“PSD”和“PDF”来描述,有两个文件吗?
  • 模拟器中是否设置了 100%->Window->Scale ?
  • @WilShipley 不,没有 PDF 文件。只是一个错字。 @avuthless 设置为 75,我改成 100% - 但是字体还是太小了。

标签: ios uifont


【解决方案1】:

假设 PSD 文件设置为 72dpi(或视网膜图像为 144),Photoshop 的字体大小和 iPhone 的应该匹配。

您可以在 Photoshop 中使用 Image->Image Size... 进行检查,然后将分辨率设置为 72 像素/英寸(通过取消选中“Resample Image:”来保持像素不变)。如果图像用于视网膜分辨率,请使用 144 像素/英寸。

这不会以任何方式更改图像,但会使 Photoshop 中的所有 pt 测量值与 iPhone 的坐标系(无论是否视网膜)匹配。

【讨论】:

  • 谢谢,这对我有帮助。 PPI 设置为 200,我将其更改为 72 ppi。
【解决方案2】:

完全取决于你的 psd。 最好的方法是在 Photoshop 中以像素为单位设置您的指标。这样您就可以看到字体的大小(以像素为单位)。

然后,如果您的 PSD 是 Retina 大小(640 像素宽度),您只需将字体大小除以 2 像素,您的应用就会获得良好的效果。

最后,不要在你的 PSD 中使用 pt 而使用 px 就可以了(只需要认为 iOS 中的 1point 在视网膜屏幕上是 2px,在非视网膜屏幕上是 1px)

【讨论】:

  • PSD 文件为视网膜大小(640 像素宽)。如果可能,我会要求我的图形团队将字体从 pt 更改为 px。 (他们会因此恨我)。顺便谢谢你的回答。
  • 不不,您的图形团队不参与其中。您只需要以像素为单位设置您的 Photoshop(在它的设置中)指标(对开发人员来说更方便)。然后您将获得以像素为单位的字体大小。您只需要查看它,除以 2 并将其设置为您的 [UIFont fontWithName:@"PTSans-Regular" size:13]
  • 明白了。但它说它是 27,78px,如果我将它除以 2,我会得到与我之前的输出几乎相同的 13.x。 PSD文件也设置为200dpi,我将其更改为72。现在我必须将13.x乘以2才能获得视网膜字体大小?这是我第一次尝试将 Screendesign 应用到应用程序(也是我的第一个应用程序),对于菜鸟问题​​非常抱歉。 :(
  • 我们都需要从某个地方开始 ;) Dpi 不会真正改变任何东西,因为它是“每磅点数”,它仅在您想要打印某些东西时才有用。您只需要 psd 做 640px 或 320px 宽度。然后,如果您的字体显示为 27,78px,请执行[UIFont fontWithName:@"PTSans-Regular" size:27.78f/2],您将在应用程序中获得 psd 的确切结果。 (没有什么强迫你为你的字体大小设置整数)。
  • 刚刚意识到该应用程序无法运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
相关资源
最近更新 更多