如何在iOS模拟器中testingdynamictypes(更大的字体大小)

在iOS中更改dynamictypes设置可以手动完成(设置>常规>辅助function>大文本)。

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

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

注意:这不仅对UItesting有用,而且对于使用更大字体的Fastlane快照创build屏幕截图也是有用的。

尽pipe(据我所知)没有logging,但可以使用启动参数来定义初始dynamictypes设置。

键: UIPreferredContentSizeCategoryName

价值:下面的一个

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

这个无证键/值的来源: GitHub 。

一个方便的方法是向Xcodescheme添加一个启动参数(例如,在启动时传递的参数下添加-UIPreferredContentSizeCategoryName UICTContentSizeCategoryXL ),当您在Xcode中运行应用程序时,将应用此设置。 您可以使用不同的dynamictypes设置创build多个scheme,以在它们之间切换。

如果目的是使用Fastlane Snapshot创build屏幕截图,则相应的代码如下所示:

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

从Xcode 8起,有一个比未logging的启动参数更好的选项:Accessibility Inspector。 这是谈话 ,可以在Xcode>打开开发工具下find。

Xcode辅助功能检查器

从iOS 10开始,可以使用UITraitCollection APIdynamic更改dynamictypesselect。 有关更多信息,请参阅https://stackoverflow.com/a/43983241/1148702

Interesting Posts