如何覆盖UIWebView顶部的UIButton(closures)button?
我一直在寻找和尝试解决我用iOS的UIWebView的问题。
我有一个非常小的应用程序,只是加载我的网站源代码居住在https://github.com/pjuu/iotter 。
在网站上,当用户点击张贴的图像时,它将图像URL加载到网页视图中。 这让他们陷入困境,无法返回到网站的其他部分。
我想要做的是在右上angular显示一个(x)button(不pipe是在使用什么样的屏幕旋转)并且在浏览器中执行后台操作。
我知道这个问题不是代码问题,因为我很好的sortingSwift代码的一部分。 我只是不能为我的生活工作如何以编程方式添加button,并显示在Web视图。
我能find的唯一教程包括创build一个工具栏来执行这些types的操作,我认为在查看图像时会占用很多空间。
问题很简单:
- 这可能吗?
- 如果是的话,我将如何去创buildbutton?
我将使用正则expression式来检查request.path
参数,以便只在图像URL匹配时才显示。
道歉,如果这不适合SO。 我很高兴移动该问题或发布在另一个网站上。
提前感谢您的帮助。 我不是一个使用XCode的移动开发人员,故事板的东西是一个远离vim的世界。
参考:
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)创build“X”UIButton:
// Define the UIButton 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) //Hide the UIButton button.hidden = true
2)检测何时打开一个imageUrl,并显示“X”UIButton:
// This function is triggered every time a request is made: 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"){ // code to make cross appear // for example: self.button.hidden = false } }
3)最后,你将需要创build一个方法,当“X”UIButton被点击时closures页面:
func btnPressed(sender: UIButton!) { if(webview.canGoBack) { //Go back in webview history webview.goBack() } else { //Pop view controller to preview view controller self.navigationController?.popViewControllerAnimated(true) } }
注意:
在行中:
let image = UIImage(named: "cross.png") as UIImage? button.setImage(image, forState: .Normal)
我们将UIButton设置为十字形象。 您需要将十字图像添加到XCode项目,并将“cross.png”string设置为图像的确切名称:“nameOfImage.fileType”。