0

iOS13语音控制功能有一个命令“向下滚动”。此命令适用于 UITableViews,但似乎不适用于具有可滚动内容的 UIScrollViews。

  1. 这是故意的吗?
  2. 有意与否,有没有办法让这个命令在 UIScrollView 上工作?

示例:在 UIScrollView 中包含大量文本的 UILabel(约束是正确的 - 它滚动并在激活时由Voice Over确认“第 1 页,共 3 页”)

在此处输入图像描述

4

1 回答 1

0

此命令适用于 UITableViews,但似乎不适用于具有可滚动内容的 UIScrollViews。

...仅当此内容是必须可滚动的巨大 UILabel 内容时:添加许多其他元素(滑块,按钮...),您会注意到启用了滚动。

关于这一点,在TextKit Best Practices (2018 WWDC video)中,强烈建议为此目的 使用 UITextView :在此处输入图像描述

有没有办法让这个命令在 UIScrollView 上工作?

将标签和滚动视图切换为文本视图,以使语音控制功能适用于您的特定用例。

否则,它可以与 UILabel 不同的许多其他元素一起使用:滚动视图知道其内容大小以及何时必须向下/向上滚动,但语音控制功能无法将标签内容识别为直接与滚动内部交互的元素看法。

我像你一样用一个按钮和一个巨大的 UILabel 进行了测试: 在此处输入图像描述

  1. Scroll down这有效地达到了我的标签的结尾。
  2. Scroll up那永远行不通。

标签似乎是语音控制在滚动视图中忽略的一种空框:要在滚动视图中启用此命令,只需将您的标签替换为文本视图
现在,如果您的用例是 UIScrollView 中的单个 UILabel,请删除它们以显示 UITextView

编辑
这是 Xcode 屏幕截图,使UITextView滚动与 VoiceControl 功能一起工作: 在此处输入图像描述

...结果如下: 在此处输入图像描述

如您所见,这只是一个带有简单文本视图的空白项目:iOS 可以识别这个单一元素,Scroll downScroll up在发出声音时按照需要执行操作。

于 2020-01-07T09:52:13.997 回答