我正在玩SwiftUI,并且想为我的项目使用自定义UI字体。但是,我不想失去内置字体类(例如,大标题)附带的动态类型调整大小。
苹果确实为以下产品提供了自定义字体修饰符Text:
Text("Hello, world!")
.font(.custom("Papyrus", size: 17))
Run Code Online (Sandbox Code Playgroud)
但是,这将大小固定为17pt。当您在设备上或模拟器中运行此命令并打开辅助功能检查器以调整操作系统级别的字体大小时,该Text元素不会更新。
该size:参数不是可选的,因此您必须传递一些内容。不幸的size是,由于Font没有size参数,因此您无法获得现有字体(甚至是自定义字体)。
在SwiftUI的其余部分中,一种常见的模式似乎是参数可以是可选的,也可以传入nil以显式禁用某些行为。我希望size:参数on .custom()是可选的,并且在内部使用上一个Font修饰符的大小,或者使用通过设置的默认大小Text。
另外,定义系统样式的静态方法(例如.largeTitle)可以接受提供自定义字体名称的参数:.largeTitle("Papyrus")
有人有解决方法吗?