为什么iOS单间距字体的表现不是这样?
我正在使用SpriteKit,我的iOS应用程序中有一个计时器,它通过SKLabelNode呈现,并在更新功能中更新。我不希望数字随着计数的增加而左右移动,所以我尝试使用Courier New。它的效果比Avenir好得多,但某些数字的宽度仍有细微的波动。(6和9比其他数字略宽。)我在几个不同的实验中看到了这些波动,我尝试了:为什么iOS单间距字体的表现不是这样?,ios,swift,fonts,kerning,monospace,Ios,Swift,Fonts,Kerning,Monospace,我正在使用SpriteKit,我的iOS应用程序中有一个计时器,它通过SKLabelNode呈现,并在更新功能中更新。我不希望数字随着计数的增加而左右移动,所以我尝试使用Courier New。它的效果比Avenir好得多,但某些数字的宽度仍有细微的波动。(6和9比其他数字略宽。)我在几个不同的实验中看到了这些波动,我尝试了: 普通和粗体样式 大字体(65)和小字体(9) Courier新字体和Menlo字体 Xcode模拟器与ipodtouch 我提交了诸如“哪种字体有统一宽度的数字”之类
- 普通和粗体样式
- 大字体(65)和小字体(9)
- Courier新字体和Menlo字体
- Xcode模拟器与ipodtouch
scoreNode = SKLabelNode(fontNamed: "Courier New")
scoreNode.fontSize = 65
scoreNode.fontColor = UIColor.blackColor()
scoreNode.text = "0"
scoreNode.position = CGPoint(x: patternPane.midX, y: patternPane.midY)
patternPaneNode.addChild(scoreNode)
scoreNode.text = "\(viewControllerDelegate!.getScore())"
然后我像这样更新分数:
scoreNode = SKLabelNode(fontNamed: "Courier New")
scoreNode.fontSize = 65
scoreNode.fontColor = UIColor.blackColor()
scoreNode.text = "0"
scoreNode.position = CGPoint(x: patternPane.midX, y: patternPane.midY)
patternPaneNode.addChild(scoreNode)
scoreNode.text = "\(viewControllerDelegate!.getScore())"
这是一幅覆盖了28帧和29帧的图像。您可以看到电影的边缘对齐,并且可以看到2的底部没有对齐
有什么解释吗
即使我使用的是单空格字体,iOS是否可能对SKLabelNode应用紧排?由于iOS 9,默认情况下所有字体都使用比例数字 如果您使用的是
UILabel
,您可以,但据我所知,SKLabelNode
没有解决方案
WWDC2015视频(第26分钟)中的更多信息:您是否可以添加一个屏幕截图?是一个SKLabelNote(显示两位数字)还是两个节点各显示一位数字?在后一种情况下,它们之间的位置是如何定义的?它是一个有两个数字的节点。