如何重新排序VoiceOver读取UIAccessibilityElements的方式?

时间:2015-11-10 20:26:43

标签: objective-c cocoa-touch voiceover uiaccessibility

有关此问题的SO有2个答案,但似乎都不再有效。

我有一个自定义的UITableViewCell。这个细胞上有各种各样的标签。 VoiceOver for Accessibility从左到右,从上到下读取内容。

这是我的手机布局的问题。我需要按照特定的顺序阅读。

但是,我似乎无法更改默认情况下VoiceOver读取内容的顺序。

我已尝试过self.accessibilityElements = @[self.view5, self.view1, self.view9],但这不会改变顺序。

2 个答案:

答案 0 :(得分:0)

您可以使用组合所有单元格子视图创建的字符串设置单元格的可访问性标签,例如,如果您有 lbl1、lbl2、lbl3、btn1:

    NSString *cellAccessibilityString = [NSString stringWithFormat:@"%@,%@,%@,%@", _lbl3.text, _lbl2.text, _btn1.text, _lbl1.text];
    [self setAccessibilityLabel:cellAccessibilityString];

其中“self”是细胞。

答案 1 :(得分:-1)

不,配音不是这样的。您无法更改辅助功能元素的顺序。你只能跳过堆栈中的一些元素。

假设您在垂直布局中有视图1到9

你这样做:

     self.accessibilityElements = @[self.view5, self.view1, self.view9]

IT并不意味着辅助功能将首先读取视图5,然后查看1然后查看9。

你应该给出如下命令:

      self.accessibilityElements = @[self.view1, self.view5, self.view9]

因此,声音仅按照1,5,9的顺序读取它们,并且它会跳过remianing !!!!

声音再次按顺序从左到右,从上到下读取!!!

这样想:仅当您想要添加/跳过视图中元素的辅助功能时才使用self.accessibilityElements,而不是用于辅助功能订单!!!