在 SwiftUI 的 App 中实现文本大小选取器

Implementing text size picker in app in SwiftUI

提问人:ayelvs 提问时间:11/17/2023 更新时间:11/17/2023 访问量:39

问:

如何在我的应用程序中实现文本大小选择器,将文本大小应用于应用程序的所有部分(即 NavigationBar、TabBar 等)

我现在知道在最新的 iOS 中,有每个应用程序的设置(在系统 a11y 菜单中),但我找不到任何 API 来允许在应用程序内部署选择。

谢谢!

我希望实现类似 Ivory、Apollo、TweetBot 在他们的应用程序中的东西。

swiftui 文本大小

评论


答:

1赞 ScottM 11/17/2023 #1

您可以使用环境值将动态类型大小传递给任何视图,环境值是一种读写属性,允许您覆盖用户选择的类型大小,例如.dynamicTypeSize

  ContentView()
    .environment(\.dynamicTypeSize, myTypeSize)

为此,您需要确保是一个枚举。myTypeSizeDynamicTypeSize

注意:这样做会覆盖用户在手机或 iPad 设置中设置自己的充分理由的值,因此使用它来提供应用内 UI 更改可能不是最好的主意。它可能会使用户的可访问性变得更糟,而不是更好。

个人观点:我想说的是,你花在构建自己的动态类型大小系统上的时间最好花在确保你现有的视图与所选择的任何系统设置一起工作上。从长远来看,使用 SwiftUI 工具(包括 等)调整布局以在任何情况下工作将更有益。@ScaledMetricViewThatFits