如何同时获得两个同名的 UIFont
How to get two UIFont with name same time
我在我的应用程序中使用了一个字体系列,我正在尝试获得 2 种这样的字体类型。
let descriptionFont = UIFont(name: "Avenir-Book", size: 18.0) ?? UIFont.systemFont(ofSize: 18.0)
let titleFont = UIFont(name: "Avenir-Heavy", size: 22.0) ?? UIFont.boldSystemFont(ofSize: 22.0)
但无法获取第二种字体。
我正在更改行位置。
let titleFont = UIFont(name: "Avenir-Heavy", size: 22.0) ?? UIFont.boldSystemFont(ofSize: 22.0)
let descriptionFont = UIFont(name: "Avenir-Book", size: 18.0) ?? UIFont.systemFont(ofSize: 18.0)
这次别的字体没来,还是第二个!
没看懂是什么问题?
您的代码运行良好。
问题出在您在调试器中暂停时使用变量窗格。它在变量具有有意义的值之前显示变量。在它们都具有有意义的值之前,您必须通过两个赋值。另外,使用 let
会导致未使用的值被完全优化掉。
使用 "caveman debugging" 可能会更轻松:
let titleFont = UIFont(name: "Avenir-Heavy", size: 22.0) ?? UIFont.boldSystemFont(ofSize: 22.0)
let descriptionFont = UIFont(name: "Avenir-Book", size: 18.0) ?? UIFont.systemFont(ofSize: 18.0)
print(titleFont, descriptionFont)
你会看到两种字体 do 都有值,因为我们在两次赋值后打印并且我们使用这两个值。
<UICTFont: 0x7f87c2503b70> font-family: "Avenir-Heavy"; font-weight: bold; font-style: normal; font-size: 22.00pt
<UICTFont: 0x7f87c2505340> font-family: "Avenir-Book"; font-weight: normal; font-style: normal; font-size: 18.00pt
我在我的应用程序中使用了一个字体系列,我正在尝试获得 2 种这样的字体类型。
let descriptionFont = UIFont(name: "Avenir-Book", size: 18.0) ?? UIFont.systemFont(ofSize: 18.0)
let titleFont = UIFont(name: "Avenir-Heavy", size: 22.0) ?? UIFont.boldSystemFont(ofSize: 22.0)
但无法获取第二种字体。
我正在更改行位置。
let titleFont = UIFont(name: "Avenir-Heavy", size: 22.0) ?? UIFont.boldSystemFont(ofSize: 22.0)
let descriptionFont = UIFont(name: "Avenir-Book", size: 18.0) ?? UIFont.systemFont(ofSize: 18.0)
这次别的字体没来,还是第二个!
没看懂是什么问题?
您的代码运行良好。
问题出在您在调试器中暂停时使用变量窗格。它在变量具有有意义的值之前显示变量。在它们都具有有意义的值之前,您必须通过两个赋值。另外,使用 let
会导致未使用的值被完全优化掉。
使用 "caveman debugging" 可能会更轻松:
let titleFont = UIFont(name: "Avenir-Heavy", size: 22.0) ?? UIFont.boldSystemFont(ofSize: 22.0)
let descriptionFont = UIFont(name: "Avenir-Book", size: 18.0) ?? UIFont.systemFont(ofSize: 18.0)
print(titleFont, descriptionFont)
你会看到两种字体 do 都有值,因为我们在两次赋值后打印并且我们使用这两个值。
<UICTFont: 0x7f87c2503b70> font-family: "Avenir-Heavy"; font-weight: bold; font-style: normal; font-size: 22.00pt
<UICTFont: 0x7f87c2505340> font-family: "Avenir-Book"; font-weight: normal; font-style: normal; font-size: 18.00pt