在swift中将UIFont转换为CGFont?

4
需要在以下函数中传递 CGFont
CGFontCreateCopyWithVariations(<#font: CGFont!#>, <#variations: CFDictionary!#>))

这个怎么样 - https://dev59.com/tGox5IYBdhLWcg3wcT3r - Grimxn
嗯,他要求用Swift,但我猜这个回答也适用于你的问题:你需要在这里使用Objective-C。 - Peter Branforn
非常感谢Grimxn和Peter Branforn。 - Vijay Dhas Gilbert
2个回答

10

这里是一个小例子:

var font = UIFont.systemFontOfSize(15.0)
var fontName = font.fontName as NSString
var cgFont = CGFontCreateWithFontName(fontName);

var copiedFont = CGFontCreateCopyWithVariations(cgFont, nil)

明白了。非常感谢 :) - Vijay Dhas Gilbert

6
遇到了Swift 4的问题,接受的答案已经不太适用了。以下代码可以将UIFont转换为可用的CGFont
if let uiFont = UIFont(name: "Helvetica-Bold", size: 36.0),
    let cgFont = CGFont(uiFont.fontName as CFString) {
        // Do stuff        
    }

我们如何将UIFont的字体大小添加到CGFont中? - gbenroscience
1
当您使用CGContext绘制字体时,必须在CGContext上调用setFontSize(_ size: CGFloat) - B Roy Dawson

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