2013-05-22 11 views
7

In un'app per iPhone ho una visualizzazione Web in cui voglio visualizzare in anteprima alcune immagini scaricate da internet, il mio problema è che alcune immagini non sono visualizzate per adattarsi alla cornice di webview, ma la maggior parte fa. Penso che questo sia dovuto al fatto che quelle immagini sono troppo grandi. Sto facendo qualcosa di sbagliato? Si prega di aiutareLe scale di proprietà di UIWebViewPageToFit = SÌ non funziona correttamente su immagini più grandi

Quello che voglio è semplicemente caricamento immagine in webview per adattarsi al fotogramma di webview. Puoi fornirmi un altro codice, ma è necessario che tu stia parlando di Webview non di immagini.

Ecco il codice che sto usando.

self.documentData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.folio3.com/corp/wp-content/uploads/2013/02/Entrance_A-3.jpg"]]; 
self.webView.scalesPageToFit = YES; 
[self.webView loadData:self.documentData MIMEType:@"image/jpeg" textEncodingName:@"utf-8" baseURL:nil]; 

Inoltre qui è la schermata di uscita (mostra chiaramente gli indicatori di scorrimento cioè immagine non è adatto nel telaio di WebView) Output Screenshot

+0

Se qualcuno vuole una risposta migliore seguendo le stesse linee di Ammar: http://stackoverflow.com/a/4670989/1861181 – Morkrom

risposta

0

Provare a utilizzare contenuti HTML per WebView, come il seguente codice

<html> 
<head> 
    <title>Title</title> 
</head> 
<body style='margin:0px; padding:0px;'> 
    <img src='<your_image_url>' 
     style='max-width:320px; max-height:460px;' 
     alt='Your_Image_Name'/> 
</body> 
</html> 

Per ridimensionare l'uso dell'immagine CSS (fogli di stile a cascata) styling, giocare con le queste proprietà di stile a attributo di stile immagine

max-width, min-width, larghezza, altezza max-, min-height & altezza

+0

OK ma dove va in iOS? Come viene implementato? – Morkrom

4

Controllare e set struttura di UIWebView in viewDidLoad: come muggito ..

webView.frame = self.view.frame; 

dopo l'uso di questo metodo delegato e impostare scalesPageToFit proprietà come muggito ..

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    webView.scalesPageToFit = YES;//set here 
    return YES; 
} 
+1

Ho provato questo, ma si verifica lo stesso problema – iMemon

+0

@iMemon vedere queste risposte e provare anche questo http://stackoverflow.com/questions/2350135/uiwebview-wont-zoom-even-after-setting-scalespagetofit-to-yes :) –

1

Questo soluti si basa sulla risposta di Ammar Hasan. Invece di originale ...

NSData *data = [NSData dataWithContentsOfURL:imageURL]; 
[self.webView loadData:data MIMEType:@"image/jpeg" textEncodingName:@"utf-8" baseURL:nil]; 

... si può fare questo:

NSString *photoWrapper = [NSString stringWithFormat:@"\ 
<html>\n\ 
    <head>\n\ 
     <meta name=\"viewport\" content=\"width=device-width\" />\n\ 
     <style type=\"text/css\">\n\ 
      body {\n\ 
       margin: 0;\n\ 
       padding: 0;\n\ 
      }\n\ 
      img {\n\ 
       width: 100%%;\n\ 
      }\n\ 
     </style>\n\ 
    </head>\n\ 
    <body>\n\ 
     <img src=\"%@\" />\n\ 
    </body>\n\ 
</html>\ 
", URL]; 
[self.documentView loadHTMLString:photoWrapper baseURL:nil]; 

Ora l'immagine viene ridimensionata alla larghezza della visualizzazione Web, anche quando la visualizzazione Web è inferiore a metà della larghezza dell'immagine, che sembra essere un limite che UIWebView impone diversamente. L'immagine può ancora essere ridimensionata dall'utente, che volevo. Puoi sostituirlo aggiungendo minimum-scale e maximum-scale al meta tag viewport.

Problemi correlati