iphone - 如何找到 UIWebView 中图像的位置

标签 iphone objective-c ios ipad 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 无关,而是与内容 View 相关。假设图像的位置向下 1000 像素,但我现在正在向下浏览 UIWebView 的一半,因此我想要看到的数字是 200。我希望这是有道理的

最佳答案

实际上UIWebView有一个UIScrollView。您可以使用 scrollView 属性访问 UIWebView 中的 UIScrollView。然后获取scrollViewcontentOffset。最后,你得到了scrollViewcontentOffset以及图像相对于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);

您将获得返回的图像位置。

关于iphone - 如何找到 UIWebView 中图像的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8876104/

相关文章:

objective-c - Xcode 在按钮上滚动

ios - UILocalNotification : set iOS Alarm doesn't work

ios - Swift:函数中的 UIAlert - 使用未解析的标识符 'present'

ios - iOS SDK 中的 MDM iPCU 配置文件安装失败

IOS:如何使用代码验证用户的电话号码

ios - iphone 如何推送浏览量?

ios - 界面生成器中的未知类

iphone - 创建 View Controller 时,我没有选中 Targeted for iPad 选项。如何使用 XCode 4.2 修复我的 UIView 以针对 iPad 设备?

ios - `[Quotes objectAtIndex: quoteNumber]` 没有返回任何东西

ios - NSMutableArray UIButton 按下历史记录