2013-10-01 6 views
5

UIWebView scalesPageToFit non funziona correttamente quando si esegue un iPhone app su iPad con iOS 7.scalesPageToFit non funziona correttamente in esecuzione un'applicazione per iPhone su iPad (iOS 7)

Ho impostato il scalePageToFit = YES prima di caricare la richiesta sul WebView.

Dopo il caricamento della pagina, l'ispezione della larghezza del documento HTML fornisce 769px mentre la larghezza del frame di scorrimento di UIWebView è 320. La vista di scorrimento zoomScale è 1 anche se ci si aspetterebbe che sia 0.41 ... (320/769). Qualche idea?

risposta

4

Il problema è ora fissato in iOS 7.0.3. Ma se non puoi andarci, per favore continua a leggere.

Questo sembra essere un difetto in iOS7. Per ricapitolare, il problema si verifica quando si esegue un'app solo per iPhone, compilata con iOS7 SDK, in un iPad o iPad Mini iOS7. Una soluzione temporanea è quella di ridimensionare la visualizzazione a scorrimento della visualizzazione Web. Questo rende il testo più piccolo di quanto vorresti, ma, finora, questa è la soluzione migliore che ho visto.

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    CGSize contentSize = webView.scrollView.contentSize; 
    CGSize viewSize = self.view.bounds.size; 

    float scale = viewSize.width/contentSize.width; 
    if (scale < 0.9) { 
     NSLog(@"Zoom out fix for web view: %f", scale); 

     webView.scrollView.minimumZoomScale = scale; 
     webView.scrollView.maximumZoomScale = scale; 
     webView.scrollView.zoomScale = scale; 
    } 
} 
+0

<0,9? Qual è la logica dietro a questo? – Remover

+0

Remover, in pratica il codice evita qualsiasi ingrandimento se il fattore di scala corrente è 0.9 o più. Puoi anche usare la scala <1.0 se vuoi. Tutto ciò è discutibile, dal momento che il difetto è stato risolto in iOS7.0.3. – RajV