gpt4 book ai didi

objective-c - 如何处理 CATextLayer 以在 UILabel 中显示与系统字体相同的字体?

转载 作者:搜寻专家 更新时间:2023-10-31 22:06:50 26 4
gpt4 key购买 nike

当我使用UILabel时,我将系统字体设置为:

label.font = UIFont.systemFontOfSize(18, weight: UIFontWeightMedium)

现在我尝试使用CATextLayer,我在网上搜索发现iOS 9的系统字体是San Francisco,字体名称是.SFUIText -Medium,所以我尝试将字体名称设置为:

textLayer = CATextLayer() 
textLayer.font = CTFontCreateWithName(".SFUIText-Medium", 18, nil)

但是,如上所述,UILabelCATextLayer 设备屏幕上显示的字体不同。在此处的 CATextLayer 中使用的正确字体名称是什么,以便我可以显示与 UILabel 完全相同的字体?

最佳答案

从 iOS 7.0 开始,UIFontCTFont 已经“免费桥接”。这意味着您可以将 UIFont 视为 CTFont,反之亦然。因此:

let view = UIView(frame: CGRectMake(0, 0, 200, 100))
view.backgroundColor = UIColor.whiteColor()

let layer = CATextLayer()
layer.font = UIFont.systemFontOfSize(18, weight: UIFontWeightMedium)
layer.string = "Hello"
layer.frame = view.bounds
layer.foregroundColor = UIColor.blackColor().CGColor
view.layer.addSublayer(layer)

XCPlaygroundPage.currentPage.liveView = view
print(layer.font)

结果:

screen shot

Optional(<UICTFont: 0x7f904bf38960> font-family: ".SFUIText-Medium"; font-weight: normal; font-style: normal; font-size: 18.00pt)

关于objective-c - 如何处理 CATextLayer 以在 UILabel 中显示与系统字体相同的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35471837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com