2013-10-01 15 views
5

UIWebView scalesPageToFit nie działa prawidłowo, gdy uruchomiony jest iPhone aplikację na iPad z iOS 7.scalesPageToFit nie działa prawidłowo uruchomiona aplikacja iPhone na iPadzie (iOS 7)

Ustawiam scalesPageToFit = YES przed załadowaniem żądania do WebView.

Po załadowaniu strony sprawdzenie szerokości dokumentu HTML daje 769 pikseli, podczas gdy szerokość widoku przewijania w interfejsie użytkownika UIWebView wynosi 320. Skalowanie to zoomScale wynosi 1, chociaż można oczekiwać, że będzie to 0,41 ... (320/769). Dowolny pomysł?

Odpowiedz

4

Problemem jest już ustalona w iOS 7.0.3. Ale jeśli nie możesz tam pojechać, czytaj dalej.

To wydaje się być wadą w iOS7. Podsumowując, problem występuje, gdy uruchomisz aplikację na iPhone'a skompilowaną z pakietem SDK iOS7 na iPadzie iOS7 lub iPadzie Mini. Tymczasowe obejście polega na skalowaniu widoku przewijania widoku WWW. To sprawia, że ​​tekst wygląda na mniejszy, niż ci się spodoba, ale jak dotąd to najlepsze rozwiązanie, jakie widziałem.

- (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? Jaka jest logika tego? – Remover

+0

Remover, w zasadzie kod unika jakiegokolwiek powiększania, jeśli aktualny współczynnik skali wynosi 0,9 lub więcej. Możesz także użyć skali <1.0, jeśli chcesz. Wszystko to jest dyskusyjne, ponieważ defekt jest teraz naprawiony w iOS7.0.3. – RajV