在Swift中如何为字体添加样式?

54

我正在尝试使用Swift进行开发,进展顺利。我遇到的一个问题是如何在代码中以编程方式设置字体样式。

例如,在下面的标签中,我写了以下代码,如何将其字体设置为Helvetica Neue Ultralight?

label.font = UIFont (name: "Helvetica Neue", size: 30)
5个回答

72

我假设这是一个自定义字体。对于任何自定义字体,您需要执行以下操作:

  1. 首先,在Xcode中下载并将字体文件添加到您的项目中 (文件应该会出现在“Target -> Build Phases -> Copy Bundle Resources”中)。

  2. 在Info.plist文件中添加键“Fonts provided by application”,类型为“Array”。

  3. 对于要添加到您的项目中的每个字体,请使用包括扩展名在内的完整文件名创建一个数组项(例如HelveticaNeue-UltraLight.ttf)。 保存您的“Info.plist”文件。

label.font = UIFont (name: "HelveticaNeue-UltraLight", size: 30)


我还要补充一点:如果你还没有在“复制包资源”部分中包含自定义字体,那么不要忘记这样做,否则你将无法使用它们。 - Erken
为什么要假设这是自定义字体?我认为原问题和我的需求一样,即font.fontWithItalics()或font.fontWithWeight(),类似于font.fontWithSize()。如果答案是“必须通过字体名称完成”,那么这就是问题的答案。 - absmiths
感谢提供自定义字体信息,已点赞! - Mozahler

57

一个很好的资源是iosfonts.com,它说这种字体的名称是HelveticaNeue-UltraLight。因此,你可以使用这段代码:

label.font = UIFont(name: "HelveticaNeue-UltraLight", size: 30)

如果系统找不到字体,则默认使用“普通”字体 - 我认为它类似于11号Helvetica字体。这可能会令人困惑,请务必检查您的字体名称。


19
您可以通过两种方式设置自定义字体:在设计时和在运行时
  1. 首先,您需要下载所需的字体(.ttf文件格式)。然后,双击该文件进行安装。

  2. 这将显示一个弹出窗口。点击'安装字体'按钮。

Screenshot 1

这将安装字体并出现在“字体”窗口中。

Screenshot 2

现在,字体安装成功。将自定义字体拖放到项目中。在此过程中,请确保“添加到目标”已选中。

Screenshot 3

5. 你需要确保将该文件添加到项目的TargetsBuild Phases中的Copy Bundle Resources中。

Screenshot 4

在此之后,您需要将此字体添加到项目的Info.plist中。 创建一个新的键,类型为Array,键名为'Font Provided by application'。 将字体作为字符串元素添加到数组中。

Screenshot 5

A. 设计模式:

  1. 从Storyboard文件中选择标签。进入UtilitiesAttribute inspector中的Font属性。

Screenshot 6

  1. 点击字体,选择“自定义字体”

Screenshot 7

从“家庭”部分选择您安装的自定义字体。

Screenshot 8

现在您可以看到标签的字体设置为自定义字体。

Screenshot 9

B. 运行时模式:

 self.lblWelcome.font = UIFont(name: "BananaYeti-Extrabold Trial", size: 16)

似乎运行时模式不适用于动态形成的字符串,例如:

self.lblWelcome.text = "Welcome, " + fullname + "!"

请注意,在上述情况下,只有设计时方法对我起作用。

15

在Swift中添加自定义字体

  1. 将您的字体拖放到项目中。
  2. 双重检查它是否已添加到“复制束资源”中(生成阶段 -> 复制束资源)。
  3. 在您的plist文件中添加“应用程序提供的字体”,并使用完整名称添加您的字体。
  4. 现在可以像这样使用您的字体:myLabel.font = UIFont (name: "GILLSANSCE-ROMAN", size: 20)

谢谢,伙计。我还在逐渐掌握从Obj-C到Swift的转换。 - Felipe
完整的文件名。 - Sentry.co

2

Xamarin

Label.Font = UIFont.FromName("Copperplate", 10.0f);

Swift

text.font = UIFont.init(name: "Poppins-Regular", size: 14)

获取字体家族列表,请访问Github/IOS-UIFont-Names

1
GIT链接很棒!谢谢! - NSA-bot

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