Edit:刚刚注意到,有时它有效,有时无效。我不知道为什么。
我正在制作一款主要为盲人制作的应用程序,VoiceOver可能会很活跃。在一种观点中,我需要自己进行互动和手势。在那里,我试图制作一个可以直接交互的区域,这样它背后的功能就好像没有Voiceover活动一样,即使它是活动的。但当我这样做时,Voiceover总是告诉:";区域直接交互";,或类似的东西(测试设备未设置为英语(。
有人知道可能是什么问题吗?
这是我的观点:
struct MyView: View {
var body: some View {
TestView()
.accessibilityAddTraits(.allowsDirectInteraction)
}
}
这就是TestView:
struct TestView: View {
var body: some View {
Rectangle()
.onTapGesture(count: 2) { print("A View was tapped") }
.onAppear { print("A View was created") }
}
}
当视图占用了所有空间时,无法将其作为默认视图直接交互。用户需要自己使用转子或设置:
设置应用程序/辅助功能/画外音/转子动作/直接触摸应用程序/
当应用程序在该设置中被选中时,标记有trait.allowDirectInteraction的视图确实像VoiceOver未处于活动状态一样工作,尽管这应该只用于可单独访问的元素,而不是避免这些部分访问应用程序的简单方法!