2011-09-13 23 views
14

Tengo UIWebView cargado con html en mi programa de iPad. Al usar -webkit-column-width, dividí el html con varias columnas.¿Cómo obtener la posición de un elemento en UIWebView?

padding: 0px 
height: 1024px 
-webkit-column-gap: 0px 
-webkit-column-width: 768px 

¿Cómo puedo obtener la posición del elemento (x, y) en la vista web? La posición está en la posición de la pantalla, no en el html. Entonces, y está en el rango de 0 a la altura de la vista web.

Gracias de antemano.

+0

esto no es lo mismo que su pregunta al http://stackoverflow.com/questions/7378102/using-css3-columns-how-can -get-element-position/7429994? – chris5marsh

Respuesta

2

Ok, he resuelto utilizando la función jQuery

var p = $("tag"); 
var position = p.position(); 

I consigue real x, los valores y. Gracias.

+0

¿cómo puedo obtener x, y de la posición var? – harshitgupta

33

Debido a tener que incluir jQuery sólo para este chupa:

- (CGRect)positionOfElementWithId:(NSString *)elementID { 
    NSString *js = @"function f(){ var r = document.getElementById('%@').getBoundingClientRect(); return '{{'+r.left+','+r.top+'},{'+r.width+','+r.height+'}}'; } f();"; 
    NSString *result = [self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:js, elementID]]; 
    CGRect rect = CGRectFromString(result); 
    return rect; 
} 
+0

¿Cómo puedo hacer lo mismo con document.getElementByTagName? – nidIOS

+0

¡Esto es asombroso! ¿Hay una función para establecer el boundingClientRect? – tbag

Cuestiones relacionadas