C'è un modo per disabilitare lo zoom quando la pagina Scale per adattarsi è ON ??UIWebView disabilita lo zoom quando scalePageToFit è ATTIVATO
risposta
questo funziona per me:
UIScrollView *scrollView = [webView.subviews objectAtIndex:0];
scrollView.delegate = self;//self must be UIScrollViewDelegate
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return nil;
}
UPDATE: Per iOS 5 o superiore ottenere ScrollView come questo:
webview.scrollView.delegate = self;
C'è una proprietà chiamata scrollView
in UIWebView
. Attraverso di esso puoi definire questo. Per essere più precisi si dovrebbe assomigliare a questa:
myWebView.scrollView.minimumZoomScale = 1.0;
myWebView.scrollView.maximumZoomScale = 1.0;
sbagliato lo zoom è ancora lì, anche se si imposta i livelli di zoom a 1.0 –
Questo in realtà funziona se messo in '- (void) webViewDidFinishLoad: (UIWebView *) webView' della funzione delegate della webview –
Spiacente, questo non funziona per me, anche se inserito in webViewDidFinishLoad. –
Dal Apple Documentation:
scalesPageToFit
Un valore booleano che determina se la pagina web in scala per adattarsi alla vista e la l'utente può cambiare la scala.
@property (nonatomic) BOOL scalesPageToFit
Discussione
Se SI, la pagina web viene adattato e l'utente può ingrandire e ridurre fuori. Se NO, lo zoom dell'utente è disabilitato. Il valore predefinito è no.
Quindi, se si desidera modificare tale comportamento, sarà probabilmente necessario sottoclasse UIWebView.
Edit: Implementare metodo delegato
- (void)webViewDidFinishLoad:(UIWebView *)webView
per la visualizzazione web e in essa aggiunge folowing codice:
[webView stringByEvaluatingJavaScriptFromString: @"$('body').bind('touchmove', function(event) { event.preventDefault() });"];
Il problema è questo disattivare anche la pergamena, perché disattiva la mossa di toccare. Se si desidera mantenere il rotolo è necessario scrivere uno script Java che sovrascriverà il meta tag viewport con:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
non ha aiutato, è ancora zoomabile – Jim
Sembra che tu stia scrivendo, sto cercando una soluzione e io modificherò –
Questo ha funzionato per me su iOS 5. –
Invece di usare
UIScrollView *scrollView = [webView.subviews objectAtIndex:0];
scrollView.delegate = self;//self must be UIScrollViewDelegate
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return nil;
}
È possibile utilizzare questo:
webview.scrollView.delegate = self;
-(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView {
return nil;
}
Seconda opzione è migliore e pieno-prova. La prima logica potrebbe fallire nei futuri SDK.
quindi funziona su di me:
NSString *fullURL = @"http://google.com";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
_webView.scrollView.scrollEnabled = TRUE;
_webView.contentMode = UIViewContentModeScaleAspectFit;
_webView.scalesPageToFit = FALSE;
[_webView loadRequest:requestObj];
- 1. aggiungi UIButton come sottoview di UIWebView e ridimensionalo quando lo zoom è
- 2. Google Maps API V3 disabilita lo zoom uniforme
- 3. Abilita/disabilita lo zoom su iPhone safari con Javascript?
- 4. Disabilita pan/zoom in com.google.android.maps.MapView
- 5. Disabilita zoom scorrimento in Google Maps iframe
- 6. Visualizza l'animazione del controller come lo zoom e lo zoom
- 7. Rendering del testo iOS dopo lo zoom
- 8. È possibile ingrandire e rimpicciolire lo zoom?
- 9. iOS UiWebView/Page Visibility Api: evento "pageshow" non attivato
- 10. Come resettare lo zoom di UIWebView? Sto già usando scalePagesToFit = YES;
- 11. DISABILITA lo scorrimento orizzontale
- 12. Posizione assoluta dopo lo zoom
- 13. Come posso abilitare lo zoom su UIWebView che all'interno di UIScrollView?
- 14. googlemaps Android V2 - Disabilita scorrimento su pan o zoom
- 15. Come disabilitare la lente d'ingrandimento in UIWebview?
- 16. Disabilita tutto lo zoom di pagina in IE11 su Windows8-Arm
- 17. Disabilita il pulsante Indietro e Avanti su UIToolBar in UIWebview
- 18. perché non è l'evento di modifica casella di controllo attivato quando lo faccio programmazione in d3js
- 19. UIDeviceOrientationDidChangeNotification evento non attivato quando l'utente disabilita la rotazione automatica dello schermo
- 20. disabilita l'effetto zoom CTRL/ruota in fase di esecuzione
- 21. BroadcastReceiver onReceive attivato quando registrato
- 22. QGraphicsView: disabilita lo scorrimento automatico
- 23. Il sito esegue lo zoom indietro quando il menu è aperto
- 24. Sfarfallio mappaOverlay dopo lo zoom indietro e lo zoom in-iOS
- 25. Come faccio ad attivare lo scorrimento orizzontale e disattivare lo scorrimento verticale in UIWebView?
- 26. Disabilita lo scorrimento in listview
- 27. Disattiva lo zoom del browser su alcuni elementi in Firefox
- 28. Mattonelle MKMapView non caricate con lo zoom
- 29. Abilita lo zoom nel sito web mobile
- 30. attivare lo zoom/disabilitare in Android WebView
Ottima soluzione, funziona perfettamente e usando un'istruzione if nel metodo, puoi scegliere di restituire 'nil' o inoltrare il messaggio a' super', nel qual caso lo zoom viene riattivato (a seconda del contenuto che stai visualizzando). –
A partire da iOS 5 è possibile utilizzare 'webView.scrollView.delegate = self;'. – Dev
Grazie mille mi ha davvero aiutato molto! –