【问题标题】:UIFont and Retina displays. Double the size?UIFont 和 Retina 显示。尺寸翻倍?
【发布时间】:2014-05-27 15:29:55
【问题描述】:

我想我可能已经知道答案了,但情况是这样的:

我有一张规格表,要求字体大小为:11pt。

当我这样做时:UIFont *font = [UIFont fontWithName:@"Gotham" size:11.0]; 然后我的视网膜 iPad 4 上的字体很小。

当我将点数加倍时:UIFont *font = [UIFont fontWithName:@"Gotham" size:22.0];

尺寸看起来不错。我是否应该假设我应该将@2x 设备的字体点数加倍?就像一个 png 一样。

编辑:

感谢您澄清这一点。我明白了:UIFont *font = [UIFont fontWithName:@"Gotham" size:11.0]; 会在 Retina/Non-retina 上产生相同的尺寸。

现在可能会有更多愚蠢的跟进:

当我打开 photoshop 文件(以@2x 缩放)时,字体显示为 11pt。当我导出文件(转换为 png 并标记为 @2x)并将 png 放入项目中时,为什么图像的文本仍然比我以 11pt 以编程方式创建的文本大得多? (图像和程序文本都在 iPad 中查看)

我可能脑子里放了个屁,但如果能帮助我找到解决方案,我将不胜感激。

【问题讨论】:

标签: ios uitextview retina-display uifont textkit


【解决方案1】:

不,您不需要缩放字体大小。字体大小以点为单位,而不是像素。 11.0 在你看来很小的原因是因为它确实是 ;-)

但无论是不是视网膜设备,尺寸都应该相同。

【讨论】:

  • 感谢您的回答。你介意看看上面的编辑吗?
  • 很抱歉,我对 Photoshop 不是很熟悉,所以无法为您提供帮助。
【解决方案2】:

如果你做对了,你应该能够忽略像素,完全按照点来思考,原生测量单位:

  • 如果您有一个内置的界面小部件,例如 UILabel,那么 [UIFont fontWithName:@"Gotham" size:11.0] 在 Retina 和非 Retina 设备上的大小将相同(但在 Retina 上更清晰)。

    李>
  • 如果您正在实时构建图像(在代码中),并且您正在使用此字体在图像中绘制,那么如果这是一个 2x 图像用于双倍-分辨率屏幕,那么您应该使用双分辨率图形上下文(例如,您使用UIGraphicsBeginImageContext(size,NO,0) 进行设置)并且再次[UIFont fontWithName:@"Gotham" size:11.0] 在 Retina 和非 Retina 设备上看起来相同大小(但在 Retina 上更清晰) .

另一方面,假设您正在 Photoshop 中准备一张图像,以便稍后在您的 iOS 应用程序中使用(例如,用于图标),并且该图像中包含一些字体绘图。当然,对于 2x 版本的图像,您必须将字体大小加倍,就像您将绘图中所有内容的大小加倍一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多