在 Swift 中将 UIButton 覆盖在 UIWebView 上
Overlay an UIButton over an UIWebView in Swift
所以我有一个加载 UIWebView 的视图,我想覆盖 UIButton 用户可以点击以转到另一个视图。
我设法将按钮放在网络视图上,但我似乎无法点击它。
这是我的代码:
class ButtonView: UIView {
var button: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
button = UIButton(frame: CGRectMake(0, 0, 50, 50))
button.layer.zPosition = 10
self.addSubview(button)
}
required init(coder aDecoder: NSCoder) {
fatalError("Init(coder:) has not been implemented")
}
}
class MyViewController : UIViewController, UIWebViewDelegate {
var buttonView = ButtonView()
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.loadWebView() //This just loads a url to the web view...
webView.layer.zPosition = 1
buttonView = ButtonView(frame: CGRectMake(0, 0, 100, 100))
buttonView.layer.zPosition = 100
buttonView.button.addTarget(self, action: "buttonEvent:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(buttonView)
}
func buttonEvent(sender: AnyObject!){
println("Tap detected!")
}
}
所以这会按预期在网络视图顶部显示按钮,但我无法点击它。
尽管如果我隐藏网页视图,我可以毫无问题地点击按钮
这是zPosition问题吗?还是别的?
只要更换:
就可以正常使用
self.view.addSubview(buttonView)
与:
webView.addSubview(buttonView)
所以基本上是将包含按钮的视图添加到网络视图中
所以我有一个加载 UIWebView 的视图,我想覆盖 UIButton 用户可以点击以转到另一个视图。
我设法将按钮放在网络视图上,但我似乎无法点击它。
这是我的代码:
class ButtonView: UIView {
var button: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
button = UIButton(frame: CGRectMake(0, 0, 50, 50))
button.layer.zPosition = 10
self.addSubview(button)
}
required init(coder aDecoder: NSCoder) {
fatalError("Init(coder:) has not been implemented")
}
}
class MyViewController : UIViewController, UIWebViewDelegate {
var buttonView = ButtonView()
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.loadWebView() //This just loads a url to the web view...
webView.layer.zPosition = 1
buttonView = ButtonView(frame: CGRectMake(0, 0, 100, 100))
buttonView.layer.zPosition = 100
buttonView.button.addTarget(self, action: "buttonEvent:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(buttonView)
}
func buttonEvent(sender: AnyObject!){
println("Tap detected!")
}
}
所以这会按预期在网络视图顶部显示按钮,但我无法点击它。
尽管如果我隐藏网页视图,我可以毫无问题地点击按钮
这是zPosition问题吗?还是别的?
只要更换:
就可以正常使用self.view.addSubview(buttonView)
与:
webView.addSubview(buttonView)
所以基本上是将包含按钮的视图添加到网络视图中