как найти координаты центра / х, у изображения в UIWebView - PullRequest
0 голосов
/ 15 января 2012

Итак, у меня есть UIWebView, в который я добавил жест касания, и я хотел бы найти координаты координат x, y изображения, повернутого в веб-представлении, или, если возможно, центр изображения в координатах xy в веб-просмотр. Код у меня есть:

- (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, поэтому ищу несколько советов для этого.

1 Ответ

1 голос
/ 10 апреля 2012

Если вы используете jQuery на своей html-странице, вы можете попытаться использовать:

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

также запишите точку с запятой в конце оператора.Все операторы Javascript должны быть действительными и правильно завершаться, как внутри html-страницы.

Если вы вводите библиотеку, вы должны правильно поместить в класс функции с пространствами имен, как показано ниже:

"(function () {return "your data";}) ();"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...