通常我会查看Apple的UICatalog示例代码以获得基本的VoiceOver支持,但在示例代码中看起来似乎有对UIPickerViews的VoiceOver支持。我是否需要在某处提供accessibilityLabel方法来添加VoiceOver支持?我试图实施UIPickerViewAccessibilityDelegate方法,但配音仅读取我的选择器视图中的标签,而不是提示向上或向下滑动以更改值。
此外,我的选择器视图设置为UITextField的输入视图。所以我不确定这是否相关。
更新: https://github.com/stevemoser/VoiceOverPicker
我创建了一个展示问题的示例项目。在该示例中,显示了正常的选择器视图和文本字段。还有一个选择器设置为textfield的输入视图属性。我似乎无法通过在使用VoiceOver时点击它来激活任一选择器。虽然我可以通过屏幕上的视图滑动(左和右)来激活任何一个。有什么想法吗?
更新2: 看起来如果该应用程序是在iPhone上运行的iPhone应用程序或在iPad上运行的iPad应用程序,它运行正常但如果它是在iPad上运行的仅iPhone应用程序,则点击选择UIPickerView不起作用。
答案 0 :(得分:2)
您是否正在使用每行标题(而非自定义视图)进行香草UIPickerView?如果是这样,你就不应该做任何事情。
您提到VoiceOver正在读取每行上的标签,因此我们知道UIPickerView正确地将isAccessibilityElement设置为YES。它也正确地读取accessibilityLabels。
您是否有可能在有机会阅读accessibilityHint之前与选择器进行交互? (为了其他人的利益,accessibilityHint是“用一根手指轻扫或向下调整值”史蒂夫在他的问题中提到的。)或者也许某些通知正在改变VoiceOver焦点,然后提示才有可能被阅读?
答案 1 :(得分:1)
默认情况下,如果您的选择器视图可以访问,当您使用VoiceOver专注于它时,它将按以下方式阅读:
“[ROW LABEL]可调节[#number]超出[#total]选取器项目”a 2 to 3秒暂停然后“向上或向下滑动以选择值”
需要注意的一些事项: