我的应用程序中有一个基于 UITableView 的选择器控件。用户可以滚动表格视图,中间的标记会显示所选项目。每个可选项目都是一个表格视图单元格。
示例:在此处输入链接描述 现在我想让我的应用 VoiceOver 与朋友兼容。但是这个控件,我很难让它工作。
启用 VoiceOver 后,我无法滚动表格视图来选择其他元素。我查看了时钟应用程序中的选择器视图。它也不滚动。但是当您向上或向下滑动时,它会跳转到下一个或上一个值。它说
“用一根手指向上或向下滑动以调整值”。
我阅读了Matt Gammell 的 VoiceOver 指南,他说提示必须说明控件不应该做什么。
所以我推断这是他们用于可以向上或向下滑动以调整值的东西的特殊特征。但我找不到这样的特质。
既然 UIPickerView 是基于 UITableViews 的,Apple 是如何让它与 VoiceOver 一起工作的呢?我必须使用手势识别器进行轻弹吗?
编辑:
我在 UITableView 子类上设置可调整特征,如下所示:
self.isAccessibilityElement = YES;
self.accessibilityLabel = @"Start date.";
self.accessibilityTraits = UIAccessibilityTraitAdjustable;
表视图实现
- (void)accessibilityIncrement {
NSLog(@"accessibilityIncrement");
}
- (void)accessibilityDecrement {
NSLog(@"accessibilityDecrement");
}
现在我可以拖动单元格,VoiceOver 将读取它们的标签并用黑色矩形标记它们。但是表格视图不会滚动,并且上面的方法不会被调用。
单元格本身是isAccessibilityElement = NO;
并且不实现可访问性操作方法。