- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我尝试将 NSFont 转换为 CGFont:
var defaultFont: NSFont = NSFont.labelFont(ofSize: CGFloat(currentSize))
像这样:
if let oldFont = defaultFont as? CGFont {...
没办法,编译器说“不”:条件向下转换为 CoreFoundation 类型“CGFont”将始终成功
。好的,让我们尝试不同的方式:
let oldFont = defaultFont as CGFont
没有。编译器说“不”:“NSFont”不能转换为“CGFont”;你是不是想用 'as!'强制沮丧?
。好的,让我们使用 as!
:
let oldFont = defaultFont as! CGFont
Comppiler 说"is"!但运行时错误说:Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
我尝试按名称启动 CGFont,但并非我所有的字体都“安装在系统中”,如果启动,字体名称可能从 Font-Name
更改为 Font_name
通过 CGFont(_ 名称:CFString)。这是有风险的。
有什么帮助吗?
最佳答案
来自 https://lists.apple.com/archives/cocoa-dev/2010/Feb/msg00177.html :
Given an NSFont object how can I extract or create a CGFontRef from it to use directly with CoreGraphics?
你很接近。从(我认为)Leopard 开始,NSFont 和 CTFontRef(不是 CGFontRef)是免费桥接的,因此您应该能够使用 CTFontCopyGraphicsFont() 从 NSFont 获取 CGFontRef。
例子:
import CoreText
let defaultFont: NSFont = ...
let cgFont = CTFontCopyGraphicsFont(defaultFont, nil)
关于swift - 将 NSFont 转换为 CGFont——不可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56893842/
有没有办法在 Swift Playground 的上下文中构建 CGFontRef?当以下代码在 playground 中运行时,'font' 为 nil: let path = NSBundle.m
需要为下面的函数传递CGFont CGFontCreateCopyWithVariations(, )) 最佳答案 这是一个小例子: var font = UIFont.systemFontOfSiz
我正在使用 CoreAnimation 构建一个由多个层组成的 View ,稍后将对其进行动画处理。还有 CATextLayer 将只包含给定大小的给定字体的一个字符。为了使它漂亮,我想设置图层的边界
我尝试将 NSFont 转换为 CGFont: var defaultFont: NSFont = NSFont.labelFont(ofSize: CGFloat(currentSize)) 像这
我试图用下载的字体绘制一些文本。我查看了 API 文档并搜索了 Web。我找到了一个解决方案,但问题是它仅适用于 CoreGraphics 级别的框架。所以我寻找一种将CGFont转换为UIFont的
我正在处理仅从资源加载 TTF。 This question帮助我回答了第 1 部分。但现在我需要 CGFont 或 CTFont 中的 NSFont。 这仅适用于 Mac 应用程序。 最佳答案 如何
我想从字体获取元信息。例如:支持的语言、版本、许可证等。我该怎么做?它在 Mac 字体应用程序上运行良好。我需要在 iOS 上实现这个。 最佳答案 您可以使用CTFontCopyName获取大部分信息
当我将 Uber SDK 集成到我的项目中时,我在 swift 2.3 中遇到了这个错误,但我不知道如何解决这个问题。 class FontUtil { static func loadFontWit
我是一名优秀的程序员,十分优秀!