iOS 14辅助触摸停留控制有时不适用于SwiftUI按钮
我有一个SwiftUI应用程序,它使用常规的iOS 14辅助触摸停留控制有时不适用于SwiftUI按钮,swiftui,ios14,assistive,Swiftui,Ios14,Assistive,我有一个SwiftUI应用程序,它使用常规的按钮视图,我们的客户经常使用AssistiveTouch的控制功能。在iOS 13上,DeliverControl工作正常,但在iOS 14 beta 8上,DeliverControl无法单击这些按钮 这些按钮可以用手指点击,也可以用普通鼠标点击,但不能用控制功能 我尝试过添加可访问性特征,如isButton,但没有任何效果 是否有人遇到过同样的问题,并且有解决方案或任何见解?我知道这是相当利基,但任何帮助是感激的 编辑: 我用一个非常简单的例子对它
按钮
视图,我们的客户经常使用AssistiveTouch的控制功能。在iOS 13上,DeliverControl工作正常,但在iOS 14 beta 8上,DeliverControl无法单击这些按钮
这些按钮可以用手指点击,也可以用普通鼠标点击,但不能用控制功能
我尝试过添加可访问性特征,如isButton
,但没有任何效果
是否有人遇到过同样的问题,并且有解决方案或任何见解?我知道这是相当利基,但任何帮助是感激的
编辑:
我用一个非常简单的例子对它进行了测试,包括一个按钮,效果很好。在我的特定应用程序中,这似乎是某种副作用
我有几个ZStack
s可以显示和隐藏一些视图,比如modals和popover。这可能是失败的根源吗
我不明白的是,按钮可以点击。。。如果视图阻塞了按钮
,那么这应该是不可能的,对吗
我已经尝试了发布
和调试
构建,这两个构建没有任何区别
当控制激活且光标位于应单击的按钮上时,轻敲也不起作用。但是,当光标不在按钮附近时,轻敲可以正常工作
我已经通过反馈向苹果发送了一份报告
编辑:
我找到了原因。ScrollView以某种方式阻止了所有控件的单击。每当滚动视图出现在某个视图中时,就会发生这种情况
最简单的例子:
struct ContentView: View {
@State var show = false
var body: some View {
ZStack {
ScrollView {
Button(action: {
print("This should be printed but isn't....")
}, label: {
Text("Button in ScrollView")
})
}
}
}
}
我知道它的定位,但也许有人需要这个
还有其他受影响的部件会导致相同的行为:
ScrollView
TextField
滑块
Stepper
UIViewRepresentable
对我来说,这是一个大问题,因为我们的客户经常使用控制
编辑:
这可以在最新的iOS 14.2 beta 1中复制:
import SwiftUI
@main
struct TempSwitUIApp: App {
@State private var text: String = "I am a text"
var body: some Scene {
WindowGroup {
Button(action: {
print("\(UUID()) \(self.text)")
}, label: {
Text("Print text to the console")
})
TextField("Hello", text: self.$text)
}
}
}
我更新了我与苹果的问题,但还没有收到他们的消息