可以手动更改 iOS 中的动态类型设置(设置 > 通用 > 辅助功能 > 大文本)。
但这似乎不适用于当前的模拟器(在撰写本文时为 v9.3),并且手动执行此操作不是需要自动化的解决方案。
问题:有没有办法通过动态类型设置启动应用程序以启动具有更大字体大小的应用程序?
注意:这不仅对 UI 测试有用,而且还用于使用 Fastlane Snapshot 以更大的字体创建屏幕截图。
可以手动更改 iOS 中的动态类型设置(设置 > 通用 > 辅助功能 > 大文本)。
但这似乎不适用于当前的模拟器(在撰写本文时为 v9.3),并且手动执行此操作不是需要自动化的解决方案。
问题:有没有办法通过动态类型设置启动应用程序以启动具有更大字体大小的应用程序?
注意:这不仅对 UI 测试有用,而且还用于使用 Fastlane Snapshot 以更大的字体创建屏幕截图。
尽管(据我所知)没有记录,但启动参数可用于定义初始动态类型设置。
钥匙:UIPreferredContentSizeCategoryName
值:以下之一
UICTContentSizeCategoryXS
UICTContentSizeCategoryS
UICTContentSizeCategoryM
UICTContentSizeCategoryL
UICTContentSizeCategoryXL
UICTContentSizeCategoryXXL
UICTContentSizeCategoryXXXL
UICTContentSizeCategoryAccessibilityM
UICTContentSizeCategoryAccessibilityL
UICTContentSizeCategoryAccessibilityXL
UICTContentSizeCategoryAccessibilityXXL
UICTContentSizeCategoryAccessibilityXXXL
这个未记录的键/值的来源:GitHub。
一种方便的方法是将启动参数添加到 Xcode 方案(例如-UIPreferredContentSizeCategoryName UICTContentSizeCategoryXL
在启动时传递的参数下添加),当您在 Xcode 中运行应用程序时,此设置将应用。您可以创建具有不同动态类型设置的多个方案以在它们之间切换。
如果目的是使用 Fastlane Snapshot 创建屏幕截图,等效代码如下:
app.launchArguments += [ "-UIPreferredContentSizeCategoryName", "UICTContentSizeCategoryXL" ]
app.launch()
从 iOS 10 开始,可以使用UITraitCollection
API 动态更改动态类型选择。有关更多信息,请参阅https://stackoverflow.com/a/43983241/1148702。
实际上可以在应用程序级别覆盖内容类别大小,这对于单元和 UI 测试特别有用。
在这里查看:https ://medium.com/livefront/practical-dynamic-type-part-2-testing-613bb845f26b