【问题标题】:How to test Dynamic Type (larger font sizes) in iOS Simulator如何在 iOS 模拟器中测试动态类型(更大的字体)
【发布时间】:2016-11-13 23:17:02
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ios xcode ios-simulator ui-testing fastlane-snapshot


    【解决方案1】:

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

    密钥: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()
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        从 Xcode 8 开始,有一个比未记录的启动参数更好的选择:Accessibility Inspector。它包含在 this talk 中,可以在 Xcode > Open Developer Tool 下找到。

        Xcode 11+ 更新

        有一个新的环境覆盖选项。在this answer 中查找更多信息。

        【讨论】:

        • 不错的 Xcode 改进!谢谢 - 我已将接受的答案更改为这个答案,因为它现在是最好的方法。但是对于希望为 Fastlane 屏幕截图执行此操作的人,请查看其他答案!
        • Xcode 10 似乎已经放弃了“字体大小”选项。唯一的选项是 (1) 反转颜色,(2) 增加对比度,(3) 减少透明度,(4) 减少运动,和 (5) 全键盘访问。有人知道“字体大小”选项是否已移到其他地方吗?
        • 如果您仍然看不到它,请确保在设置中启用“大型辅助功能大小”,并在辅助功能检查器的左上角下拉菜单中选择正确的模拟器。不要选择My mac --> Simulator下拉菜单中Mac下方应该有模拟器。
        • Xcode 11 中的 Accessibility Inspector 工具发生了变化,在 LOG 窗口中引入了一个新选项:有关更多详细信息,请参阅此答案 stackoverflow.com/a/58080491/3825084
        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-01-25
            • 2015-05-10
            • 2013-09-27
            • 1970-01-01
            • 2011-10-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多