如何在iOS模拟器中测试动态类型(更大的字体大小)

11

在iOS中更改动态类型设置可以手动完成(设置>通用>辅助功能>大型文本)。

但是,在当前模拟器(v9.3)中似乎无法正常工作,手动操作也不适用于需要自动化的情况。

问题:是否有一种方法可以使用动态类型设置启动应用程序以使用更大的字体大小启动应用程序?

注意:这不仅对UI测试有用,还可用于使用Fastlane Snapshot创建具有更大字体大小的屏幕截图。

5个回答

18
尽管(据我所知)未被记录,但可以使用启动参数来定义初始的动态类型设置。
密钥:UIPreferredContentSizeCategoryName 值:以下之一 UICTContentSizeCategoryXS UICTContentSizeCategoryS UICTContentSizeCategoryM UICTContentSizeCategoryL UICTContentSizeCategoryXL UICTContentSizeCategoryXXL UICTContentSizeCategoryXXXL UICTContentSizeCategoryAccessibilityM UICTContentSizeCategoryAccessibilityL UICTContentSizeCategoryAccessibilityXL UICTContentSizeCategoryAccessibilityXXL UICTContentSizeCategoryAccessibilityXXXL 此未记录密钥/值的来源: GitHub
一种方便的方法是在Xcode方案中添加一个启动参数(例如,在“启动时传递的参数”下添加-UIPreferredContentSizeCategoryName UICTContentSizeCategoryXL),这个设置将在你在Xcode中运行应用程序时应用。你可以创建多个具有不同Dynamic Type设置的方案来在它们之间切换。
如果目的是使用Fastlane Snapshot创建截图,则等效代码如下:
app.launchArguments += [ "-UIPreferredContentSizeCategoryName", "UICTContentSizeCategoryXL" ]
app.launch()

11

Xcode 8 及以后的版本提供了比起未记录的启动参数更好的选项:辅助功能检查器。你可以在 Xcode > 开发者工具 > 辅助功能检查器 中找到它,具体内容在 此视频中有介绍。

Xcode 11+ 版本更新:

现在有一个新的环境覆盖选项。欲知详情,请参阅此答案

Xcode 辅助功能检查器


不错的Xcode改进!谢谢 - 我已经将采纳答案更改为此答案,因为它现在是最佳方法。但是对于想要为Fastlane截图执行此操作的人,请查看其他答案! - Clafou
Xcode 10似乎已经取消了“字体大小”选项。唯一的选项是(1)反转颜色,(2)增加对比度,(3)减少透明度,(4)减少动态效果和(5)完全键盘访问。有人知道“字体大小”选项是否已经移动到其他地方吗? - Gerard
2
如果你仍然看不到它,请确保在设置中启用“大型辅助功能大小”,并在辅助功能检查器的左上角下拉菜单中选择正确的模拟器。不要选择“My mac --> Simulator”,下拉菜单中应该有Mac之下的模拟器。 - Stanislav Goryachev
辅助功能检查器工具在Xcode 11中有所改变,引入了一个新选项在LOG窗口内:请参阅此答案https://dev59.com/xLbna4cB1Zd3GeqPb39R#58080491以获取更多详细信息。 - XLE_22

2
在使用无障碍检查器之前,请不要忘记在模拟设备的设置中打开“更大字体”选项:通用 -> 辅助功能 -> 更大字体。否则,无障碍检查器将无法显示动态字体选项。

enter image description here


1

1

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