我想在ViewController中创建类似图库的东西。为此,我需要多个webView,具体取决于我从JSON请求获得的图像数量。如果需要,我如何插入新的webView?
正如您在上图中看到的,我在ViewController中有一个scrollView和一个UIWebView。如有必要,我如何在第一个(第二个,第三个等)内创建一个新的webView?有可能吗?
答案 0 :(得分:23)
您可以使用这段代码尽可能简单地以编程方式创建Web视图
override func viewDidLoad() {
super.viewDidLoad()
let webV:UIWebView = UIWebView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
webV.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.google.co.in")))
webV.delegate = self;
self.view.addSubview(webV)
}
如果你想使用这个委托函数
func webView(webView: UIWebView!, didFailLoadWithError error: NSError!) {
print("Webview fail with error \(error)");
}
func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
return true;
}
func webViewDidStartLoad(webView: UIWebView!) {
print("Webview started Loading")
}
func webViewDidFinishLoad(webView: UIWebView!) {
print("Webview did finish load")
}
答案 1 :(得分:5)
对于Swift 3:
override func viewDidLoad() {
super.viewDidLoad()
let webV = UIWebView()
webV.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
webV.loadRequest(NSURLRequest(url: NSURL(string: "https://www.apple.com")! as URL) as URLRequest)
webV.delegate = self
self.view.addSubview(webV)
}
参考:基于@Deepakraj Murugesan提供的答案
答案 2 :(得分:2)
虽然UIWebView可能不是您应该用来显示图像的东西,但您只需几行代码即可创建一个:
let webView = UIWebView(frame: someFrame)
webView.loadRequest(NSURLRequest(URL: someURL!))
view.addSubview(webView)
答案 3 :(得分:0)
你不能这样做,原来,webview会占用大量内存,如果你使用了一些数量,可能会导致糟糕的体验,为什么不使用ImageView?
答案 4 :(得分:0)
我认为SDWebImage + UIImageView会对你有所帮助。请参阅:https://github.com/rs/SDWebImage
答案 5 :(得分:0)
对于Swift 4:
webView = WKWebView()
webView.navigationDelegate = self
view = webView
let url = URL(string: "https://www.earthhero.org")!
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
另外,您需要导入WebKit并将WKNavigationDelegate添加到类中。