(Swift) 处理用户在 webView 上的点击

(Swift) Handling user's tap on webView

我在屏幕上的 webView 底部有 webView 和一个隐藏的 stackView(3 buttons)

@IBOutlet weak var webView: WKWebView!
@IBOutlet weak var stackView: UIStackView!

默认情况下,stackView 是隐藏的,当用户点击 webView 上的某处时它应该是可见的。

override func viewDidLoad() {
        super.viewDidLoad()
        stackView.isHidden = true
    }

我如何处理用户的点击以使我的 'stackView' 可见?

你可以使用 UITapGestureRecognizer,试试这个

override func viewDidLoad() {
    super.viewDidLoad()
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap))
    tapGesture.delegate = self
    webView.addGestureRecognizer(tapGesture)
   } 

  @obj func handleTap() {
      stackView.isHidden = false
    }

别忘了加上UIGestureRecognizerDelegate

如果它不起作用,你必须添加以下方法,因为WKWebView已经有自己的手势识别器

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
  return true
}