iOS 中的等宽字体是啥?
Posted
技术标签:
【中文标题】iOS 中的等宽字体是啥?【英文标题】:What is a monospace font in iOS?iOS 中的等宽字体是什么? 【发布时间】:2012-04-15 07:41:17 【问题描述】:我想在我的 ios 应用程序中为我的 UILabel 使用等宽字体。
很遗憾,我找不到。甚至“美国打字机”实际上也不是等宽的。 XCode 中可用的等宽字体是什么?
【问题讨论】:
Xcode 本身不附带字体。也就是说,Xcode 的默认字体至少应该是雪豹和狮子的 Menlo。 2018 真的只有 Menlo 和 Courier。如今,iOS 和 Xcode 内置了很长的字体列表并且始终可用(您可以在 Xcode 中轻松查看)。只有两种等宽字体。 ***.com/a/50792536/3939807 适用于任何自定义字体和等宽数字字体 docs.huihoo.com/apple/wwdc/2013/… 【参考方案1】: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 字体的列表。
This webpage 检测您安装的系统字体并返回一个相当全面的列表。
【讨论】:
请注意“Menlo”和“Menlo-Regular”不是完全等距的,而“Menlo-Bold”确实是等距的。对于这两种字体,当显示“2”而不是其他数字时,我看到宽度的变化很小。使用 Simulator XCode 12.4 和 iOS 14.4 观察到【参考方案2】:看着旧的listing of fonts shipped with iOS,我看到几个一个等宽字体s。
(例如。Andale Mono, Monaco, Courier New)
2018 年只有 Menlo 和 Courier。
【讨论】:
并非所有这些字体都包含在 iOS 中(Andale Mono 和 Monaco 不包含)。似乎 Courier New 是唯一的固定宽度选项。 啊,是的,当我发布我没有正确阅读图例时。 这里最有趣的是,在第一个视图中,这个答案看起来像是一个笑话,因为 iOS 只有一个等宽字体。哈哈 从iOS 7开始就有Menlo字体【参考方案3】:如果您的意图是显示数字并且您不关心使用的特定字体,您可以这样做:
UIFont.monospacedDigitSystemFontOfSize(
UIFont.systemFontSize(),
weight: UIFontWeightRegular)
【讨论】:
不幸的是,iOS 9 或更高版本 我尝试了这个使用 SKSpriteLabel 的计时器计数,但标签仍然“跳跃”与所说的“等宽”系统字体。 :-( Menlo 就是这样。 在 iOS 10.2 中,使用 UIFont.monospacedDigitSystemFont(ofSize:weight:) 对我有用。我的“数字计时器”UILabel 不会“跳来跳去”。自从@Jonny 尝试后,Apple 已经修复了它,或者 UILabel 没有 SKSpriteLabel 的错误。 此字体不等宽。奇怪。【参考方案4】:Adobe 刚刚以 TTF 和 OTF 格式发布了一个不错的等宽字体 Source Code Pro。 它已获得Open Font License 的许可,因此可在应用程序中免费使用,包括商业应用程序。 您需要将字体文件添加为 Xcode 中的资源,方法是将 info.plist 中的 UIAppFonts 键设置为指向 SourceCodeProRegular.ttf 文件。
现在你可以在你的代码中设置,例如:
self.textView.font = [UIFont fontWithName:@"Source Code Pro" size:14];
【讨论】:
【参考方案5】:Expanding upon @reggie-pinkham's answer,我构建了这个JS Bin for folks to use as a live test page;为了节省未来读者的时间,这里有一些在 Mavericks 上使用 iOS 模拟器的屏幕截图:
iPad Air, iOS 8.1
iPhone 6 plus, iOS 8.1
【讨论】:
【参考方案6】:从 iOS 13 开始,旧金山 (SF) Mono 可用。找不到在界面生成器中设置它的方法,但通过代码它是:
let font = UIFont.monospacedSystemFont(ofSize: 17.0, weight: .regular)
【讨论】:
以下是如何将字体添加到 Xcode:将字体添加到 xcode developer.apple.com/documentation/uikit/text_display_and_fonts/…【参考方案7】:如果您正在寻找数字等宽字体,请尝试“Helvetica Neue”。
【讨论】:
??那是最著名的 NOT 等宽字体。 同意。但是,数字是等宽的。 我赞同“危险建议”。 -1 这正是我所需要的!其他单声道字体都有丑陋的零。【参考方案8】:iOS 上可用的内置字体列表:http://iosfonts.com。 Courier 和 Menlo 似乎是其中唯一的等宽字体。
【讨论】:
【参考方案9】:SwiftUI
可以使用Font的实例方法monospacedDigit
Text("0123456789")
.foregroundColor(.white)
.font(Font.custom("San Francisco", size: 20).monospacedDigit())
【讨论】:
【参考方案10】:您可以使用以下Font
工厂方法访问等宽字体:
static func system(Font.TextStyle, design: Font.Design) -> Font
例子:
let monospacedBody = Font.system(.body, .monospaced)
其他用法:
let serifTitle = Font.system(.title, .serif)
【讨论】:
【参考方案11】:与此同时,Apple 提供了一个很好的 Monospace 字体,可以在这里下载:Apple SFUI 以下是如何将字体添加到 Xcode:Add fonts to xcode
【讨论】:
以上是关于iOS 中的等宽字体是啥?的主要内容,如果未能解决你的问题,请参考以下文章