2011-12-12 15 views
15

Voglio andare a specificare la riga sul mio uiwebview caricato. Ho provatocome impostare la posizione di scorrimento su uiwebview

[WebView stringByEvaluatingJavaScriptFromString: @ "window.scrollTo (0.0, 100.0)"];

ma non funziona. La mia webview inizia ancora con la parte superiore della pagina. Mi chiedo solo perché carico lo UIWebview all'interno di UIView. Controllare il mio codice qui sotto sul mio UIView:

- (void)loadView { 
    webview = [[WebViewDetail alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];  //initialize a mainView is a UIWebVIew 
    webview.managedObjectContext = self.managedObjectContext; 
    webview.kitab = self.kitab; 
    webview.currentPasal = self.pasal; 
    self.title = [NSString stringWithFormat:@"%@ %d", self.kitab, webview.currentPasal]; 
    self.view=webview; //make the mainView as the view of this controller  
} 

e ho messo lo script posizionamento di scorrimento sul mio UIWebView:

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    int height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue]; 

    NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %d);", height]; 
    [self stringByEvaluatingJavaScriptFromString:javascript]; 
} 

in questo caso voglio mettere la mia UIWebView andare al fondo della pagina quando la vista è caricata. Ma non funziona, nessuna idea del perché? Sto sbagliando?

risposta

19

Prova

webview.scrollView.contentOffset = CGPointMake(0, 100); 
+0

ho messo sul webViewDidFinishLoad nel mio UIWebView e la sua non funziona, il rotolo mostrano ancora superiore della pagina. qualche altra idea? – dejoong

+2

@dejoong: sei sicuro che la pagina sia scorrevole? prova a impostarlo su un timer che spara dopo 1 secondo, per vedere se qualcosa potrebbe scorrere dopo 'webViewDidFinishLoad'. – Dani

+0

tatz strano Dani, quando sparo il metodo (contiene webview.scrollView.contentOffset = CGPointMake (0, 100);) ogni 1sec è funzionante, ma se chiamo il metodo direttamente non funziona. perché no? – dejoong

6

assicurarsi di impostare il controller della vista dove si ha la visualizzazione web per essere un UIWebViewDelegate, e dichiarare questo nella @interface del file di intestazione (h).

[yourWebView setDelegate:self]; 



Poi, nel metodo webViewDidFinishLoad:, inserire questo codice:

[yourWebView.scrollView scrollRectToVisible:CGRectMake(0, yourWebView.bounds.size.height + 100, 1, 1) animated:NO];   
Problemi correlati