参考:
1) CGRectMake: https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGGeometry/#//apple_ref/c/func/CGRectMake
2) UIWebViewDelegate:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebViewDelegate_Protocol/#//apple_ref/occ/intfm/UIWebViewDelegate/webView:shouldStartLoadWithRequest:navigationType:
解决方案:
1) 创建 "X" 按钮:
let button = UIButton(type: UIButtonType.System) as UIButton
let image = UIImage(named: "name") as UIImage?
button.frame = CGRectMake(self.view.frame.width - 60, 30, 35, 35)
button.setTitle("Test Button", forState: UIControlState.Normal)
button.setImage(image, forState: .Normal)
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
button.hidden = true
2) 检测当imageUrl被打开时并使"X" UIButton出现:
optional func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
let string = request.URL
if string.rangeOfString(".png") || string.rangeOfString(".jpg")|| string.rangeOfString(".jpeg"){
self.button.hidden = false
}
}
3) 最后,您需要创建一个方法,当“X”UIButton被点击时关闭页面:
func btnPressed(sender: UIButton!) {
if(webview.canGoBack) {
webview.goBack()
} else {
self.navigationController?.popViewControllerAnimated(true)
}
}
注意:
在下列行中:
let image = UIImage(named: "cross.png") as UIImage?
button.setImage(image, forState: .Normal)
我们正在将UIButton设置为交叉图片。
你需要将一个交叉图片添加到你的XCode项目中,并将"cross.png"字符串设置为你的图片的确切名称:"nameOfImage.fileType"。
UIWebView
是一个UIView
,它可以管理子视图。UIButton
也是一个UIView
,你可以在UIWebView
上添加一个UIButton
并像平常一样管理它。我认为你应该转移到 XCode 环境下,这样生活会更轻松... - Jean-Baptiste Yunès