2012-01-15 3 views
0

그래서 터치 제스처를 추가 한 UIWebView가 있으며,이 탭핑 된 이미지의 x, y 원점 좌표를 찾고 싶습니다. 웹보기 또는 가능한 경우 웹보기에서 xy 좌표의 이미지 중심. 내가 가지고있는 코드는 다음과 같습니다.UIWebView에서 이미지의 중심점/x, y 좌표를 찾는 방법

- (CGPoint) topLeftPointsForImage:(UIGestureRecognizer *)sender 
{ 
    CGPoint pt = [sender locationInView:self]; 
    NSString * offsetTop = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).offsetTop", pt.x, pt.y 
          ]; 

    NSString * offsetLeft = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).offsetLeft", pt.x, pt.y 
         ]; 

    NSString * scrollTop = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).parentNode.scrollTop", pt.x, pt.y 
           ]; 

    NSString * scrollLeft = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).parentNode.scrollLeft", pt.x, pt.y 
          ]; 


    float x = [[self stringByEvaluatingJavaScriptFromString:offsetTop] floatValue] - [[self stringByEvaluatingJavaScriptFromString:scrollTop] floatValue]; 
    float y = [[self stringByEvaluatingJavaScriptFromString:offsetLeft] floatValue] - [[self stringByEvaluatingJavaScriptFromString:scrollLeft] floatValue]; 
    NSLog(@"Coor height is %f with coor width is %f", x, y); 

    CGPoint point = CGPointMake(x, y); 
    return point; 
} 

그러나 이것은 올바른 가치를 제공하지 않습니다. 나는 자바 스크립트 마스터가 아니기 때문에 이것을위한 조언을 찾고있다. 당신이 당신의 HTML 페이지에 jQuery를 사용하는 경우

+0

당신이를 통해받을 수있는 가치는 무엇 : 당신이 라이브러리를 주입하는 경우 다음과 같이

, 당신은 제대로 네임 스페이스와 함수 클래스에 투입해야? document.elementFromPoint (% f, % f) .offsetTop.toString()을 사용하여 JS 코드에서 나오는 결과를 문자열로 변환해야 할 수도 있습니다. –

답변

1

, 당신은 사용하려고 할 수 있습니다 :

NSString * offsetTop = [NSString stringWithFormat:@"$(document).elementFromPoint(%f, %f).offsetTop;", pt.x, pt.y 
         ]; 

또한 문장의 끝에 세미콜론을 확인합니다. HTML 페이지 내부와 마찬가지로 모든 Javascript 문은 유효하고 올바르게 종료되어야합니다.

"(function() {return "your data";})();" 
관련 문제