【问题标题】:Use Large Text Accessibility feature in iOS app在 iOS 应用中使用大文本辅助功能
【发布时间】:2013-05-12 10:54:34
【问题描述】:

在 iOS 设备中,可以在辅助功能设置中设置大文本。用户可以在这里指定不同的字体大小。我也想在我的应用程序中使用这个字体大小。在辅助功能计划指南中,我没有找到任何有关在我的应用程序中访问此字体大小的信息。它只提到标准的 Apple 应用程序邮件、通讯录、日历等正在使用它。有谁知道在开发应用程序时是否可以访问这些信息?

UIFont 的静态 -FontSize 方法在设置大文本功能时也不会返回不同的值。

注意:不要与 iOS 7 的新动态类型混淆。这是辅助功能设置下的一个不同的旧选项。)

【问题讨论】:

  • 我有一个建议,而不是访问可访问性字体设置(以获取选定的字体大小),你为什么不开始在你的应用程序中提供一个界面来调整你的应用程序的字体,按照用户的选择。我认为您无法通过苹果批准的方式获得所有信息。所以有一个自定义界面。

标签: ios text accessibility


【解决方案1】:

很遗憾你不能。

很可能是因为尚未实现自动布局,并且使用更大的字体会弄乱应用界面。如前所述,在 iOS7 中,您可以支持 Dynamic 类型。但是,如果您需要针对较低的 iOS 版本,如果可能的话,最好使用其他辅助功能。

据我所知,iOS4 及更高版本的系统提供了一种放大屏幕区域的镜头,它不仅仅是一个跳板功能,而是完全移植到应用程序中。还有帮助视障人士的高对比度功能。

对于那些使用辅助功能 API 进行文本转语音的人,您可能会获得最大的帮助,它们在应用程序中运行良好,但不适用于自定义控件,因此您需要为这些组件实现临时行为。

您可以创建一种滑块来直接在应用程序内设置字体大小,例如 iBook 应用程序。

在我看来,从设计过程到实施细节,最好的方法是保持一切简洁明了。例如:

  • 避免复杂的手势
  • 保持界面整洁
  • 避免复杂的导航
  • 避免在同一屏幕中使用多个 tableview
  • 不要使用小按钮

【讨论】:

    【解决方案2】:

    使用文档化 API 无法访问它。

    只是为了好玩:(不要在真正的应用中使用,它可能会被商店拒绝

    它存储在com.apple.Accessibility.plist下,密钥preferredFontSize

    MobileNotes.app(可能还有其他人)使用该函数获取它

    extern float _UIAccessibilityLargeTextFontSize(float);
    

    (它是如此无证,他们确保以下划线开头。)

    【讨论】:

    • 据我了解,您的应用可能会因为使用未记录的 API 而被应用商店拒绝,因此如果您想提交它,可能需要注意这一点。
    • @Chris 啊,是的。忘记说清楚了。
    【解决方案3】:

    Accessibility 设置无法通过 iOS SDK 访问。在 iOS 7 中,您可以支持 Dynamic Type,它允许您通过调用 +preferredFontWithTextStyle: 将任何字体设置为用户定义的大小的系统字体。

    【讨论】:

      【解决方案4】:

      我认为您不会在这里得到答案,因为 WWDC 内容受 NDA 保护。如果您有开发者帐户,您可以在这里查看https://developer.apple.com/library/prerelease/ios/releasenotes/General/iOS70APIDiffs/index.html 并搜索 UIFont。这是第三个添加的方法。

      【讨论】:

      • iOS 6 中提供了“大文本”辅助功能(可能可以追溯到更远的地方,但我手边没有任何 iOS 5 设备),因此不应在保密协议下讨论它。如果答案是“在发布的 iOS 版本中没有可用于访问此功能的 API”,那就是答案。 (我不知道这是不是真的;我之前没有调查过。)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多