在Swift中为iOS字体描述符添加自定义权重

蒂姆·桑德斯(Tim Sanders)

这似乎很简单,但是无论出于什么原因,它都不起作用。我已经阅读过类似的文章,看来Font Traits词典可能存在问题?这是一个问题还是我只是完全缺少了什么?这是我第一次弄乱这样的字体,所以我认为可能是后者。

我不想使用常量或提供带有“ -bold”变体的字体。我想对字体粗细进行精细控制。

let traits = [UIFontWeightTrait : 1.0]
imgFontDescriptor = UIFontDescriptor(fontAttributes: [UIFontDescriptorNameAttribute: "Helvetica"])
imgFontDescriptor = imgFontDescriptor.fontDescriptorByAddingAttributes([UIFontDescriptorTraitsAttribute:traits])
imgTextFont = UIFont(descriptor: imgFontDescriptor!, size: 24.0)

研究:

根据iOS文档,使用数字值应该可以工作(我正在运行iOS 9.2):

UIFontWeightTrait

归一化的权重值作为NSNumber对象。有效值范围是-1.0到1.0。值0.0对应于常规或中等字体粗细。您还可以使用字体粗细常量来指定特定的粗细。有关可以使用的常量列表,请参见字体粗细。在iOS 7.0和更高版本中可用。

休·勒

UIFont(descriptor: imgFontDescriptor!, size: 24.0)返回一个与描述符匹配的字体。如果找不到与您的描述匹配的字体,则返回默认字体。因此,您无法手动控制体重。这取决于您使用的字体。如果字体支持该重量,它将返回该重量。

还有一件事,您应该使用[UIFontDescriptorFamilyAttribute: "Helvetica"]因此它将基于FamilyName和您的FontWeight确定FontName。

正确的方法是使用Apple lib中的常量:

public let UIFontWeightUltraLight: CGFloat
@available(iOS 8.2, *)
public let UIFontWeightThin: CGFloat
@available(iOS 8.2, *)
public let UIFontWeightLight: CGFloat
@available(iOS 8.2, *)
public let UIFontWeightRegular: CGFloat
@available(iOS 8.2, *)
public let UIFontWeightMedium: CGFloat
@available(iOS 8.2, *)
public let UIFontWeightSemibold: CGFloat
@available(iOS 8.2, *)
public let UIFontWeightBold: CGFloat
@available(iOS 8.2, *)
public let UIFontWeightHeavy: CGFloat
@available(iOS 8.2, *)
public let UIFontWeightBlack: CGFloat*/

您应该使用http://iosfonts.com/来确定姓氏支持的字体粗细。

如果是Helvetica:

let traits = [UIFontWeightTrait: UIFontWeightLight] // UIFontWeightBold / UIFontWeightRegular
let imgFontDescriptor = UIFontDescriptor(fontAttributes: [UIFontDescriptorFamilyAttribute: "Helvetica"])
imgFontDescriptor = imgFontDescriptor.fontDescriptorByAddingAttributes([UIFontDescriptorTraitsAttribute: traits])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Xamarin中添加自定义字体

来自分类Dev

在哪里可以找到有关自定义USB描述符类型的信息

来自分类Dev

c ++:让用户进程写入LOCAL_SYSTEM命名管道-自定义安全描述符

来自分类Dev

将值从自定义HttpControllerSelector和HttpActionSelector转发到其描述符

来自分类Dev

在哪里可以找到有关自定义USB描述符类型的信息

来自分类Dev

Mave-assembly-plugin:自定义描述符以排除文件夹

来自分类Dev

c ++:让用户进程写入LOCAL_SYSTEM命名管道-自定义安全描述符

来自分类Dev

将值从自定义HttpControllerSelector和HttpActionSelector转发到其描述符

来自分类Dev

Files.walkFileTree 使用自定义 FileVisitor 泄漏目录描述符

来自分类Dev

iOS应用中的自定义字体

来自分类Dev

iOS应用中的自定义字体

来自分类Dev

我可以在 python 3 中为描述符定义一个 add 方法吗?

来自分类Dev

如何在iOS的settings.bundle中添加自定义字体

来自分类Dev

无法在RecyclerView.ViewHolder中添加自定义字体

来自分类Dev

如何在TCPDF中添加自定义字体?

来自分类Dev

在PDFTron中向FreeText添加自定义字体

来自分类Dev

如何在 prestashop 中添加自定义字体?

来自分类Dev

matchingFontDescriptorsWithMandatoryKeys如何匹配字体描述符?

来自分类Dev

自定义ttf字体使Spritekit的过渡在SWIFT中变慢

来自分类Dev

在Xcode 6中使用自定义字体-Swift

来自分类Dev

自定义字体在Swift / Xcode中不起作用

来自分类Dev

iOS 8中的自定义字体未显示

来自分类Dev

iOS7 UIDatePicker中的自定义字体

来自分类Dev

自定义字体在IOS中不显示(.otf类型)

来自分类Dev

资源子目录中的iOS自定义字体

来自分类Dev

iOS 8中的自定义字体未显示

来自分类Dev

资源子目录中的iOS自定义字体

来自分类Dev

排序描述符在iOS中不起作用

来自分类Dev

使用蓝牙在 iOS 中编写通知描述符值

Related 相关文章

  1. 1

    在Xamarin中添加自定义字体

  2. 2

    在哪里可以找到有关自定义USB描述符类型的信息

  3. 3

    c ++:让用户进程写入LOCAL_SYSTEM命名管道-自定义安全描述符

  4. 4

    将值从自定义HttpControllerSelector和HttpActionSelector转发到其描述符

  5. 5

    在哪里可以找到有关自定义USB描述符类型的信息

  6. 6

    Mave-assembly-plugin:自定义描述符以排除文件夹

  7. 7

    c ++:让用户进程写入LOCAL_SYSTEM命名管道-自定义安全描述符

  8. 8

    将值从自定义HttpControllerSelector和HttpActionSelector转发到其描述符

  9. 9

    Files.walkFileTree 使用自定义 FileVisitor 泄漏目录描述符

  10. 10

    iOS应用中的自定义字体

  11. 11

    iOS应用中的自定义字体

  12. 12

    我可以在 python 3 中为描述符定义一个 add 方法吗?

  13. 13

    如何在iOS的settings.bundle中添加自定义字体

  14. 14

    无法在RecyclerView.ViewHolder中添加自定义字体

  15. 15

    如何在TCPDF中添加自定义字体?

  16. 16

    在PDFTron中向FreeText添加自定义字体

  17. 17

    如何在 prestashop 中添加自定义字体?

  18. 18

    matchingFontDescriptorsWithMandatoryKeys如何匹配字体描述符?

  19. 19

    自定义ttf字体使Spritekit的过渡在SWIFT中变慢

  20. 20

    在Xcode 6中使用自定义字体-Swift

  21. 21

    自定义字体在Swift / Xcode中不起作用

  22. 22

    iOS 8中的自定义字体未显示

  23. 23

    iOS7 UIDatePicker中的自定义字体

  24. 24

    自定义字体在IOS中不显示(.otf类型)

  25. 25

    资源子目录中的iOS自定义字体

  26. 26

    iOS 8中的自定义字体未显示

  27. 27

    资源子目录中的iOS自定义字体

  28. 28

    排序描述符在iOS中不起作用

  29. 29

    使用蓝牙在 iOS 中编写通知描述符值

热门标签

归档