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

标签 ios xcode ios-simulator ui-testing 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 - 如何在 iOS 模拟器中测试动态类型(更大的字体大小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38316591/

相关文章:

ios - 当全局变量的值改变时触发一个方法?

objective-c - OpenGL透明纹理(混合)

ios - iOS模拟器仅占据窗口的一部分

ios:捕获 ios 模拟器事件并将其以编程方式转换为 avi 或 quicktime 电影的最佳方法是什么?

javascript - 如何在 iOS 上使状态栏透明而不在 Ionic 3 中将其删除?

ios - 如何防止 iOS 13 深色模式破坏电子邮件

swift - 如何在 swift 4 中删除和添加选项卡栏项目

ios - 重置 iOS 模拟器内容并添加照片

ios - VS2015 Cordova:无法部署到iOS,错误:安装失败:检查您的配置文件

ios - SceneKit 相机约束行为问题