2012-01-15 24 views
0

私はそれにタッチジェスチャーを追加したUIWebViewを持っており、タップされたイメージのx、y原点座標を探したいと思いますWebビュー、または可能であれば、Webビューの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; 
} 

しかし、これは私に正しい価値を与えてくれないようです。私はjavascriptのマスターではないので、これに関するいくつかのアドバイスを探しています。

+0

あなたはどのような値を受け取るのですか? document.elementFromPoint(%f、%f).offsetTop.toString()を使用して、JSコードから出力される結果を文字列に変換する必要がある場合があります。 –

答えて

1

あなたのhtmlページでjQueryのを使用する場合は、あなたが使用しようとする場合があります。

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

も、ステートメントの末尾にセミコロンに注意してください。すべてのJavascriptステートメントは、HTMLページのように、有効で適切に終了する必要があります。あなたはライブラリを注入している場合は、次のように、あなたは、適切に名前空間と機能クラスに配置する必要が

"(function() {return "your data";})();" 
関連する問題