Je veux créer quelque chose comme une galerie d'images dans mon ViewController. Pour cela, il me faudrait plusieurs vues Web, en fonction du nombre d'images que je reçois d'une requête JSON. Comment puis-je insérer de nouvelles WebViews si nécessaire?
Comme vous pouvez le voir dans l'image ci-dessus, j'ai un scrollView et un UIWebView à l'intérieur du ViewController. Comment créer une nouvelle WebView dans la première (deuxième, troisième, etc.) si nécessaire? C'est possible?
vous pouvez créer la vue Web par programme aussi simple que possible utiliser ce code
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)
}
et si vous voulez utiliser cette fonction de délégué
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")
}
Pour 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)
}
Référence: Basé sur la réponse fournie par @Deepakraj Murugesan
Bien que UIWebView ne soit probablement pas ce que vous devriez utiliser pour afficher des images, vous pouvez en créer un avec seulement quelques lignes de code:
let webView = UIWebView(frame: someFrame)
webView.loadRequest(NSURLRequest(URL: someURL!))
view.addSubview(webView)
vous ne pouvez pas faire cela, à l'origine , la visualisation Web consomme beaucoup de mémoire; si vous en utilisez une certaine quantité, vous risquez d'obtenir une mauvaise expérience.
Je pense que SDWebImage + UIImageView va vous aider. Voir: https://github.com/rs/SDWebImage
Pour 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
De plus, vous devez importer WebKit et ajouter WKNavigationDelegate à la classe.