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

问题描述:

在iOS中更改动态类型设置可以手动完成(设置>常规>辅助功能>较大文本)。如何在iOS模拟器中测试动态类型(较大的字体大小)

但是,在目前的模拟器(本文写作时为v9.3)中似乎不起作用,并且手动这样做并不是需要自动化的解决方案。

问题:有没有办法通过动态类型设置启动应用程序来启动具有更大字体大小的应用程序?

注意:这不仅对UI测试有用,而且对于使用更大字体大小的Fastlane快照创建屏幕截图也很有用。

尽管(据我所知)没有记录,但启动参数可用于定义初始动态类型设置。

重点:UIPreferredContentSizeCategoryName

值:其中一个下面

  • UICTContentSizeCategoryXS
  • UICTContentSizeCategoryS
  • UICTContentSizeCategoryM
  • UICTContentSizeCategoryL
  • UICTContentSizeCategoryXL
  • UICTContentSizeCategoryXXL
  • UICTContentSizeCategoryXXXL
  • UICTContentSizeCategoryAccessibilityM
  • UICTContentSizeCategoryAccessibilityL
  • UICTContentSizeCategoryAccessibilityXL
  • UICTContentSizeCategoryAccessibilityXXL
  • UICTContentSizeCategoryAccessibilityXXXL

此无证键/值的来源:GitHub

一个方便的方法是将启动参数添加到Xcode方案中(例如,在启动时传递的参数下添加-UIPreferredContentSizeCategoryName UICTContentSizeCategoryXL),并且在Xcode中运行应用程序时将应用此设置。您可以使用不同的动态类型设置创建多个方案以在它们之间切换。

如果目的是使用FASTLANE快照创建屏幕截图,等效代码如下:

app.launchArguments += [ "-UIPreferredContentSizeCategoryName", "UICTContentSizeCategoryXL" ] 
app.launch() 

作为

的iOS 10的,所以可以使用UITraitCollection API动态改变的动态类型的选择。有关更多信息,请参阅https://*.com/a/43983241/1148702

从Xcode 8起,有一个比未记录的启动参数更好的选项:辅助功能检查器。它覆盖在this talk中,可以在Xcode> Open Developer Tool下找到。

Xcode Accessibility Inspector