[英]how do I find the position of an image in a UIWebView
我有一個UIWebView,其中有一個UITapGestureRecognizer,基本上在我的點擊手勢識別器中,我具有:
- (CGPoint) pointsForImage:(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];
CGPoint point = CGPointMake(x, y);
return point;
}
基本上我想做的是找到圖像的左上角x和y位置。 不是相對於UIWebView而是相對於內容視圖。 可以這么說,圖像的位置向下1000像素,但是我現在正在向下瀏覽UIWebView的一半,因此我想看到的數字是200。我希望這很有意義
實際上, UIWebView
具有UIScrollView
。 您可以使用scrollView
屬性訪問UIWebView
的UIScrollView
。 然后獲取scrollView
的contentOffset
。 最后,您獲得了scrollView
的contentOffset
以及相對於UIWebView
的圖像位置,您可以計算所需的點。
試試這段Javascript:
下面的stringByEvaluatingJavaScriptFromString:
function getPosition(element){
var el = element;
var pos = [el.offsetLeft, el.offsetTop];
var parent = el.offsetParent;
if (parent != el) {
while (parent) {
pos[0] += parent.offsetLeft;
pos[1] += parent.offsetTop;
parent = parent.offsetParent;
}
}
return pos;
}
getPosition(YourImageElement);
您將獲得圖像位置返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.