10

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

但这似乎不适用于当前的模拟器(在撰写本文时为 v9.3),并且手动执行此操作不是需要自动化的解决方案。

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

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

4

5 回答 5

17

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

钥匙: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()
于 2016-07-11T21:35:10.973 回答
11

从 Xcode 8 开始,有一个比未记录的启动参数更好的选择:Accessibility Inspector。它在本次演讲中进行了介绍,可以在 Xcode > Open Developer Tool 下找到。

Xcode 11+ 的更新

有一个新的环境覆盖选项。在这个答案中找到更多信息。

Xcode 可访问性检查器

于 2017-06-21T03:31:00.253 回答
2

在 Accessibility Inspector 中执行此操作之前,不要忘记在模拟设备的设置中打开“Larger Text”:General -> Accessibility -> Larger Font。否则,辅助功能检查器不会显示动态字体选项。

在此处输入图像描述

于 2018-06-20T11:40:42.057 回答
1

从 iOS 10 开始,可以使用UITraitCollectionAPI 动态更改动态类型选择。有关更多信息,请参阅https://stackoverflow.com/a/43983241/1148702

于 2017-05-22T16:04:13.710 回答
1

实际上可以在应用程序级别覆盖内容类别大小,这对于单元和 UI 测试特别有用。

在这里查看:https ://medium.com/livefront/practical-dynamic-type-part-2-testing-613bb845f26b

于 2018-12-13T00:17:27.880 回答