2010-03-07 35 views
14

Ho provato a disabilitarlo inserendo:Come disabilitare lo scorrimento orizzontale di UIWebview?

<meta name="viewport" content="width=320" /> 

nella mia stringa HTML, e una dozzina di variazioni di cui sopra nella vana speranza che ho appena avvitato la sintassi etichetta ... ma nulla sembra fermare UIWebView dallo scorrimento orizzontale. Eppure ci sono app che riescono a fare questo (come MobileRSS), e presumibilmente, dato che non sono stati rifiutati, non stanno usando API private.

risposta

1

<meta name="viewport" content="width=device-width, user-scalable=no initial-scale=1.0" />

8

alla fine ho riuscito a risolvere questo problema. Ho già provato a impostare il valore della larghezza della vista e non ha funzionato. Che lavoro DID stava usando overflow: nascosto insieme all'impostazione della larghezza della finestra. Grazie per aver risposto comunque.

4

La tua pagina web deve avere due attributi: 1 - il meta tag viewport e 2-- una larghezza di 320 px o meno, inclusi margine e riempimento.

Ecco uno scheletro HTML5 molto spoglio che dovrebbe consentire lo scorrimento verticale e non consentire lo scorrimento orizzontale, incluso il non consentire il rimbalzo orizzontale. Ciò impedisce anche lo zoom - presuppone che la pagina Web sia sempre visualizzata 1-1 all'utente. Questo è utile se stai usando un UIWebView per mostrare un'interfaccia utente.

<!doctype html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0" /> 
    <style> 
     body {width:320px;margin:0;padding:0;} 
    </style> 
</head> 
<body></body> 
</html> 
1

Impostare il delegato per la 's UIScrollview (su iOS5 da webview.scrollView e su iOS4 attraversando l'albero visualizzazione secondaria e selezionando la UIScrollview visualizzazione secondaria) per 'sé' e utilizzare il seguente codice della UIWebview:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
    [scrollView setContentOffset:CGPointMake(0, scrollView.contentOffset.y)]; 
} 

Funziona perfettamente, per qualche motivo il mio codice HTML stava straripando orizzontalmente senza averne bisogno. Questo lo aggiusta.

+1

Non direi che questo lo risolve; è più simile a un hack. Ma hey! se fa il lavoro, a chi importa? (Non risolve il problema perché il tuo contenuto è ancora straripante) –

29

La mia versione, una soluzione comune:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 

[webView.scrollView setContentSize: CGSizeMake(webView.frame.size.width, webView.scrollView.contentSize.height)]; 

} 
+3

È importante che questo codice sia inserito in -webViewDidFinishLoad: non da qualche altra parte (come ho fatto a viewDidLoad e sbattevo la testa contro il muro per un po ') – igrek

+0

Grazie mille, questo ha aiutato a risolvere il mio problema .. :) – NorthBlast

3

se il contenuto WebView una parola che ha lunghezza maggiore della WebView. devi rompere quella stringa. quindi utilizzare il seguente codice nel div

word-wrap: break-word;

Problemi correlati