(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
}
我在屏幕上的 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
}