0

我想我可能已经知道答案了,但情况如下:

我有一张规格表,要求字体大小为: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 中查看)

我可能有一个大脑放屁,但任何帮助找到解决方案将不胜感激。

4

2 回答 2

3

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

但是无论它是否是视网膜设备,大小都应该相同。

于 2014-05-27T15:32:15.343 回答
0

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

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

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

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

于 2014-05-27T15:59:02.107 回答