UIFont和Retina显示。尺寸加倍?

时间:2014-05-27 15:29:56

标签: ios uitextview retina-display uifont textkit

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

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

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

当我用UIFont *font = [UIFont fontWithName:@"Gotham" size:22.0];

加倍点数时

尺寸看起来正确。我是否可以假设我应该将@ 2x设备的字体点数加倍?正如人们想要的那样。

编辑:

感谢您清理它。我明白了:UIFont *font = [UIFont fontWithName:@"Gotham" size:11.0];会在视网膜/非视网膜上产生相同的大小。

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

如果你这样做,你应该能够忽略像素并完全按照点,本机测量单位来思考:

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

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

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