iOS中的等宽字体是什么?

71

我希望在我的iOS应用程序中,为UILabel选择一种等宽字体。

很遗憾,我找不到一种适合的字体。即使是“American Typewriter”也并非等宽字体。请问在XCode中有哪些等宽字体可供使用?


3
Xcode本身不带字体。话虽如此,Xcode的默认字体至少在Snow Leopard和Lion版本中应该是Menlo。 - BoltClock
对于2018年来说,真正可用的只有Menlo和Courier两种字体。如今,iOS和Xcode内置了许多字体,并且一直可用(您可以在Xcode中轻松查看)。但是只有这两种等宽字体。 - Fattie
对于任何自定义字体和等宽数字字体,您可以使用以下代码来设置:// 设置自定义字体 let customFont = UIFont(name: "YourCustomFontName", size: 17.0) UILabel.appearance().font = customFont // 设置等宽数字字体 let monospacedFont = UIFont.monospacedDigitSystemFont(ofSize: 17.0, weight: .regular) UILabel.appearance().font = monospacedFont请注意,这将应用于整个应用程序中的所有标签。如果您只想在特定标签上使用自定义字体,请使用以下代码:yourLabel.font = customFont - Rubaiyat Jahan Mumu
http://docs.huihoo.com/apple/wwdc/2013/session_223__using_fonts_with_text_kit.pdf - Rubaiyat Jahan Mumu
11个回答

82

iOS等宽字体

Courier  
Courier-Bold  
Courier-BoldOblique  
Courier-Oblique  
CourierNewPS-BoldItalicMT  
CourierNewPS-BoldMT  
CourierNewPS-ItalicMT  
CourierNewPSMT  
Menlo-Bold  
Menlo-BoldItalic  
Menlo-Italic  
Menlo-Regular

iosfonts.com维护了一个所有iOS字体的列表。

这个网页会检测您安装的系统字体并返回一个相当全面的列表。


请注意,“Menlo”和“Menlo-Regular”并非完全等宽,而“Menlo-Bold”确实是等宽的。对于这两种字体,当显示“2”而不是其他数字时,宽度会有轻微变化。在XCode 12.4模拟器和iOS 14.4上观察到此现象。 - dmind

47

看着一个旧的iOS随附的字体列表,我发现只有几个一个等宽字体(例如Andale Mono, Monaco, Courier New)


对于2018年,仅有Menlo和Courier两种字体可用。


1
并非所有这些字体都包含在iOS中(Andale Mono和Monaco不包括在内)。似乎Courier New是唯一的等宽选项。 - Dan Dyer
啊,是的,当我发布那个帖子时,我没有正确地阅读图例。 - codelark
7
这里最有趣的事情是,乍一看,这个答案似乎像是个玩笑,因为 iOS 只有一种等宽字体。哈哈。 - igorsantos07
8
自 iOS 7 开始,有 Menlo 字体。 - Pavel Alexeev

38

如果您的目的是显示数字而不关心使用的特定字体,您可以这样做:

UIFont.monospacedDigitSystemFontOfSize(
    UIFont.systemFontSize(),
    weight: UIFontWeightRegular)

iOS 9或更高版本,遗憾的是 - Dan Rosenstark
1
我尝试使用SKSpriteLabel来计算时间,但是该标签仍然在所述的“等宽”系统字体下“跳动”。 :-( - Jonny
那就是Menlo了。 - Stonetip
1
在iOS 10.2中,使用UIFont.monospacedDigitSystemFont(ofSize:weight:)对我有效。我的“数字计时器”UILabel不会“跳来跳去”。要么自从@Jonny尝试过后,苹果已经修复了这个问题,要么UILabel没有SKSpriteLabel所具有的错误。 - Jerry Krinock
1
这种字体不是等宽的,很奇怪。 - Fattie
显示剩余3条评论

15

Adobe刚刚发布了一款漂亮的等宽字体Source Code Pro,提供TTF和OTF格式。该字体采用开放字体许可证(Open Font License)授权,因此可以在应用程序中免费使用,包括商业应用。

您需要将字体文件作为资源添加到Xcode中,通过将info.plist中的UIAppFonts键设置为指向SourceCodeProRegular.ttf文件。

现在在您的代码中,您可以设置如下:

    self.textView.font = [UIFont fontWithName:@"Source Code Pro" size:14];

10

9

从iOS 13开始,旧金山(SF)等宽字体可用。没有找到在界面构建器中设置的方法,但通过代码可以实现:

let font = UIFont.monospacedSystemFont(ofSize: 17.0, weight: .regular)

以下是如何将字体添加到Xcode的方法:将字体添加到Xcode https://developer.apple.com/documentation/uikit/text_display_and_fonts/adding_a_custom_font_to_your_app?language=objc - Hecot

6
如果您正在寻找一款适用于数字的等宽字体,那么可以尝试使用 "Helvetica Neue"。

5
这是最著名的等宽字体。 - Fattie
3
同意。但是,这些数字是等宽字体。 - C. Bess
我赞同“危险的建议”。-1 - gog
这正是我所需要的!其他单色字体都有丑陋的零。 - Janneman
非常感谢!我一直在苦苦寻找一个单色系统字体,但我没有想到有些非单色字体可能会有等宽数字。这正是我需要的。经过更多的研究,还有Verdana和其他字体可供选择。 - Jose Santos

4

SwiftUI

您可以使用字体(Font)的实例方法monospacedDigit

Text("0123456789")
    .foregroundColor(.white)
    .font(Font.custom("San Francisco", size: 20).monospacedDigit())

3
以下是iOS系统内置的字体列表: http://iosfonts.com。其中Courier和Menlo似乎是仅有的等宽字体。
以下是相关截图:enter image description here

0
同时,苹果公司提供了一款优秀的等宽字体,可以在此处下载:Apple SFUI。以下是将字体添加到Xcode的方法:Add fonts to xcode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接