SwiftUI是否可以禁用UIViewRepresentable实现的UITextView文本上的手势?
我使UIViewByUIExtView具有代表性,并添加了如下所示的Tap手势。 但我只想在文本上禁用手势。只想在文本外激活tap()函数。有可能吗?我不知道如何检测UIViewRepresentable上文本的位置并禁用手势SwiftUI是否可以禁用UIViewRepresentable实现的UITextView文本上的手势?,swift,swiftui,Swift,Swiftui,我使UIViewByUIExtView具有代表性,并添加了如下所示的Tap手势。 但我只想在文本上禁用手势。只想在文本外激活tap()函数。有可能吗?我不知道如何检测UIViewRepresentable上文本的位置并禁用手势 struct TextView: UIViewRepresentable { @Binding var text: String func makeUIView(context: UIViewRepresentableConte
struct TextView: UIViewRepresentable {
@Binding var text: String
func makeUIView(context: UIViewRepresentableContext<TextView>) -> UITextView {
let textView = UITextView()
textView.backgroundColor = UIColor.clear
textView.isScrollEnabled = false
textView.text = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
textView.font = UIFont(name: "ArialMT", size: 20)
textView.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
return textView
}
func updateUIView(_ uiView: UITextView, context: Context) {
}
}
在这段代码中,当您点击TextView时,会调用tap()函数。但是如果你点击文本视图中的文本,我不想调用tap()函数!在这段代码中,当您点击TextView时,会调用tap()函数。但是如果你点击文本视图中的文本,我不想调用tap()函数!
struct TmpView9: View {
@State var text: String
func tap() -> some Gesture {
TapGesture()
.onEnded{
print("taped!!!!")
}
}
var body: some View {
VStack {
TextView(text: $text)
.frame(width:300, height: 300, alignment: .topLeading)
.border(Color.red, width: 1)
.gesture(tap())
}
}
}