2011-07-30 12 views
7

He estado leyendo todo el día y simplemente no puedo resolver el problema. Estoy intentando cargar una página web y, una vez que termine de cargarla, la desplazaré automáticamente a un punto predeterminado. He estado leyendo tutoriales como este http://iphoneincubator.com/blog/windows-views/how-to-inject-javascript-functions-into-a-uiwebview y todavía no tuve suerte.Cómo utilizar Javascript inyectado para desplazar UIWebView a un punto

Aquí está mi .m donde ocurre el problema. Estoy desesperado por favor ayuda! Además, me está diciendo que mi webViewDidFinishLoad es sobrescribir la variable de instancia, pero eso no debería ser un problema Creo

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSString *urlAddress = @"http://www.twitter.com/richrines"; 
    NSURL *url = [NSURL URLWithString:urlAddress]; 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    [webView loadRequest:requestObj]; 

    // Do any additional setup after loading the view from its nib. 
} 


- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    [webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');" 
    "script.type = 'text/javascript';" 
    "script.text = \"function myFunction() { " 
    "window.scrollTo(100,100)" 
    "}\";" 
    "document.getElementsByTagName('head')[0].appendChild(script);"]; 

    [webView stringByEvaluatingJavaScriptFromString:@"myFunction();"]; 
} 

Respuesta

3

¿Por qué lo haces de una manera tan complicada? Esto debería ser todo lo que necesita:

[webView stringByEvaluatingJavaScriptFromString:@"window.scrollTo(100,100)"]; 
+0

no pude conseguir que funcione porque yo estaba tirando el contenido en línea en lugar de cargarlo de forma local – rich

-1

no podrías cambiar el desplazamiento en la propiedad ScrollView de la web View?

[webView.scrollView setContentOffset:CGPointMake(100, 100)]; 
0

Esta es funciona perfectamente para mí, pero no incluye ninguna javascript:

asegúrese de configurar el controlador de vista donde usted tiene su vista web para ser un UIWebViewDelegate, y Declarar en el @interface del archivo de encabezado (.h).

[yourWebView setDelegate:self]; 


Luego, en el método webViewDidFinishLoad:, insertar este código:

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