2009-12-17 21 views
6

se cambio il frame di un UIWebView (la proprietà scalesPageToFit è YES), cosa devo fare per mantenere il livello di zoom di una pagina Web attualmente visualizzata?UIWebView ridimensionamento del frame non ridimensiona il contenuto interno

Diciamo che ho un telaio UIWebView con una larghezza di 200 pixel e ho ingrandito un sito Web in modo che sia visibile solo una colonna. Dopo aver modificato la larghezza a 300, vedo ancora la colonna con le stesse dimensioni e lo spazio aggiuntivo a sinistra ea destra. Ma quello di cui avrei bisogno è che vedo ancora questa colonna, ma più grande.

Qualche idea su cosa devo fare per ottenere questo? Ho provato un sacco di cose, ma niente ha funzionato finora.

A proposito, l'iPhone costruito nel browser Safari fa esattamente questa cosa (con lo stesso sito Web, quindi non è correlato ai contenuti) quando si ruota l'iPhone ... Vedo lo stesso contenuto, bug più grande, NON più contenuto come succede con la mia versione attuale del codice.

Grazie per l'aiuto! Markus

+0

Hai provato qualcosa dal lato web delle cose? CSS o JS? – TahoeWolverine

+0

Hai trovato qualche soluzione ?? Per favore aiutami, sto affrontando lo stesso problema. – Mangesh

risposta

0

Cosa hai impostato per UIViewContentMode della webview (può anche essere impostato in IB sotto la "Modalità" della sezione Visualizza)? Dal momento che stai ridimensionando la vista potrebbe avere qualcosa a che fare con questo. Solo un colpo nel buio dato che non l'ho provato, ma spero che questo aiuti.

Si potrebbe anche voler provare a disattivare scalePageToFit prima della transizione e riaccenderlo dopo.

1

EDIT: Meglio risposta:

mjdth è corretto, è possibile utilizzare la proprietà contentMode sul UIWebView. Molto semplice:

webView.contentMode = UIViewContentModeRedraw; 

Vecchio, risposta merda:

Questo ha funzionato per me, ma mi stava lavorando con pagine locali e piccole quantità di contenuti:

-(void)layoutSubviews 
{ 
    // Cause web view to reload content in order to display at new frame size 
    [webView reload]; 
} 

I' mi piacerebbe vedere una soluzione migliore che non implicasse il ricaricamento della pagina!

+0

Sembra che chiamare [webView reload] (quando webView.frame è cambiato) è l'unica soluzione per ora. –

Problemi correlati