iOS 14辅助触摸停留控制有时不适用于SwiftUI按钮

iOS 14辅助触摸停留控制有时不适用于SwiftUI按钮,swiftui,ios14,assistive,Swiftui,Ios14,Assistive,我有一个SwiftUI应用程序,它使用常规的按钮视图,我们的客户经常使用AssistiveTouch的控制功能。在iOS 13上,DeliverControl工作正常,但在iOS 14 beta 8上,DeliverControl无法单击这些按钮 这些按钮可以用手指点击,也可以用普通鼠标点击,但不能用控制功能 我尝试过添加可访问性特征,如isButton,但没有任何效果 是否有人遇到过同样的问题,并且有解决方案或任何见解?我知道这是相当利基,但任何帮助是感激的 编辑: 我用一个非常简单的例子对它

我有一个SwiftUI应用程序,它使用常规的
按钮
视图,我们的客户经常使用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)
        }
    }
}

我更新了我与苹果的问题,但还没有收到他们的消息