iOS画外音:聚焦选定的单元格而不是第一行

iOS Voiceover: Focus selected cell and not the first row

我试图让我的应用程序易于访问,在我的界面中我有一个 UILabel 和一个 UITableView,tableView 有一个 selectedRow。 selectedRow 是 table 视图中间的行,例如,如果我有 100 行,则为第 50 行。

我的问题是当我在屏幕上滑动以转到下一个元素时,在这种情况下,当我从标签转到 tableView 时,焦点转到第一个索引而不是我的单元格被选中.

我该如何解决?

假设您只有一个标签和一个 table 视图,问题归结为当您从标签移动到 table 视图时记住单元格的最新位置。

下面的算法可以用来解决这个问题:

  • 创建包含所选单元格索引路径的临时索引路径变量 (tmpIP)。
  • 当标签失去焦点时,table视图选择具有最新tmpIP索引路径的单元格。如果在选择标签之前没有选择单元格,则变量值为 nil。

看看 UIAccessibilityFocus informal protocol 来处理可访问元素的焦点。