如何在 Swift 中对字体进行样式化?
Posted
技术标签:
【中文标题】如何在 Swift 中对字体进行样式化?【英文标题】:How do you stylize a font in Swift? 【发布时间】:2014-09-02 17:00:53 【问题描述】:我正在尝试为 Swift 开发,进展顺利。我遇到的问题之一是找出如何在语言中以编程方式对字体进行样式化。
例如在这个标签中,我编写了下面的代码,例如,我怎样才能使它成为 Helvetica Neue Ultralight?
label.font = UIFont (name: "Helvetica Neue", size: 30)
【问题讨论】:
【参考方案1】:我假设这是一种自定义字体。对于任何自定义字体,这都是你要做的。
首先下载字体文件并将其添加到 Xcode 中的项目中 (这些文件也应该出现在“Target -> Build Phases -> Copy Bundle Resources”中)。
在 Info.plist 文件中添加键“Fonts provided by application”,类型为“Array”。
对于您要添加到项目中的每种字体,为您创建的数组创建一个项目,其中包含文件的全名,包括其扩展名(例如 HelveticaNeue-UltraLight.ttf)。 保存您的“Info.plist”文件。
label.font = UIFont (name: "HelveticaNeue-UltraLight", size: 30)
【讨论】:
我还要补充一点:如果您还没有或者您将无法使用它们,请不要忘记在“复制捆绑资源”部分中包含您的自定义字体 为什么假设这是自定义字体?我认为最初的问题是在寻找与我相同的东西,即 font.fontWithItalics() 或 font.fontWithWeight(),类似于 font.fontWithSize()。如果答案是“必须通过字体名称完成”,那么这就是问题的答案。 赞成提供自定义字体信息。谢谢!【参考方案2】:一个很好的资源是iosfonts.com,它说该字体的名称是HelveticaNeue-UltraLight
。所以你会使用这个代码:
label.font = UIFont(name: "HelveticaNeue-UltraLight", size: 30)
如果系统找不到字体,它会默认为“普通”字体——我认为它类似于 11-point Helvetica。这可能会很混乱,请务必检查您的字体名称。
【讨论】:
【参考方案3】:您可以通过两种方式设置自定义字体:design time
和 run-time
。
首先您需要download required font
(.ttf 文件格式)。然后,双击该文件进行安装。
这将显示一个弹出窗口。单击“install font
”按钮。
-
这将安装字体并出现在
'Fonts'
窗口中。
-
现在,字体安装成功。将自定义字体拖放到您的项目中。执行此操作时,请确保选中“
Add to targets
”。
-
您需要确保将此文件也添加到项目的
Build Phases
中的Targets
中的“Copy Bundle Resources'
”中。
-
在此之后,您需要在项目的
Info.plist
中添加此字体。
使用“Font Provided by application
”创建一个新密钥,类型为 Array。
将字体添加为数组中字符串类型的元素。
A. Design mode :
-
从 Storyboard 文件中选择标签。转到
Utilities
的Attribute inspector
中存在的Font
属性。
-
点击字体并选择“自定义字体”
-
从 Family 部分中选择您已安装的自定义字体。
-
现在您可以看到标签的字体设置为自定义字体。
B. Run-time mode :
self.lblWelcome.font = UIFont(name: "BananaYeti-Extrabold Trial", size: 16)
运行时模式似乎不适用于动态形成的字符串,例如
self.lblWelcome.text = "Welcome, " + fullname + "!"
请注意,在上述情况下,只有设计时方法对我有效。
【讨论】:
【参考方案4】:在 Swift 中添加自定义字体
-
将字体拖放到项目中。
仔细检查它是否已添加到复制捆绑资源中。 (构建阶段 -> 复制捆绑资源)。
在您的 plist 文件中添加“应用程序提供的字体”并添加您的全名字体。
现在使用您的字体,例如:
myLabel.font = UIFont (name: "GILLSANSCE-ROMAN", size: 20)
【讨论】:
谢谢,m8。我仍然坚持从 Obj-C 到 Swift 的过渡 文件全名即。【参考方案5】:Xamarin
Label.Font = UIFont.FromName("Copperplate", 10.0f);
斯威夫特
text.font = UIFont.init(name: "Poppins-Regular", size: 14)
获取字体家族列表 Github/IOS-UIFont-Names
【讨论】:
GIT 链接很棒!谢谢!以上是关于如何在 Swift 中对字体进行样式化?的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中复制 ASAuthorizationAppleIDButton 的字体样式