2015-07-27 14 views
9

Voglio creare qualcosa come una galleria di immagini nel mio ViewController. Per questo, ho bisogno di più webview, a seconda del numero di immagini che ottengo da una richiesta JSON. Come posso inserire nuove webview se necessario?Creazione di webview con programmazione in Swift

enter image description here

Come si può vedere nell'immagine sopra, ho uno ScrollView e uno UIWebView interno della ViewController. Come dovrei creare una nuova webView all'interno del primo (secondo, terzo, ecc.) Se necessario? È possibile?

+0

Intendi la galleria di immagini? Perché usare UIWebView? c'è UIImageView, e per creare più UIImageView, hai celle, per presentare celle, hai UICollectionView. E per come farlo [qui] (https://www.google.co.in/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=image%20gallery%20uicollectionview) è l'elenco di esercitazioni. Saluti. – iphonic

risposta

20

è possibile creare la vista web programmaticamente il più semplice possibile l'uso questo pezzo di codice

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) 
} 

e se si desidera utilizzare questa funzione delegato

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") 
} 
+0

Grazie! Ma come posso inserirlo in scrollView? Ho un nuovo ViewController e incorpora il controller principale. All'interno del subController ho la scrollView e voglio mettere questa webView al suo interno –

+0

puoi usarla all'interno di scroll view come sub component –

+1

Grazie per questa risposta. Stavo per pubblicare una domanda, ma sono contento di aver trovato questa risposta .... esattamente quello che stavo cercando! – Pangu

0

non si può fare che, in origine , Webview occuperà molta memoria, se ne usi una certa quantità, può portare a una brutta esperienza, perché non usare ImageView?

1

Anche se UIWebView non è probabilmente la cosa che si dovrebbe utilizzare per la visualizzazione delle immagini, è possibile crearne uno con poche righe di codice:

let webView = UIWebView(frame: someFrame) 
webView.loadRequest(NSURLRequest(URL: someURL!)) 
view.addSubview(webView) 
3

Per 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) 
} 

Riferimento: basato sulla risposta fornita da @Deepakraj Murugesan

+0

funziona, ma non c'è modo di tornare –

Problemi correlati