在UIWebView中检测缩放比例

3

我的问题是我想检测UIWebView的缩放比例,我已经尝试搜索但没有得到合适的答案。任何帮助都将不胜感激......

1个回答

0

虽然 UIWebView 没有 zoomScale 属性,但是 UIScrollView 有! 所以我们只需要扫描它的 subView's 来查找包含所有内容的 scrollView 并以此获取它。

这里有一个小型(1个方法)类别,可以通过调用 [webView zoomScale] 来获取比例。

UIWebView+zoom.h 文件

@interface UIWebView (zoom)
-(float)zoomScale;
@end

UIWebView+zoom.m 文件

@implementation UIWebView (zoom)

-(float)zoomScale{
    UIScrollView *webViewContentView;
    for (UIView *checkView in [self subviews] ) {
        if ([checkView isKindOfClass:[UIScrollView class]]) {
            webViewContentView = (UIScrollView*)checkView;
            break;
        }
    }
    return webViewContentView.zoomScale;
}

@end

UIScrollView 类参考

UIWebView 的视图层次结构(不过不要完全依赖它,始终扫描 webView 以避免苹果对 iOS 进行更改导致代码崩溃)

注意:此代码应该可以工作,但是由于是在回复框中编写的,因此尚未经过测试。


1
问题在于,除非用户实际上正在放大或缩小,否则这将始终返回1.0。因此,它是一个仅提供当前活动缩放比例与用户首次开始缩放时存在的缩放比例之间比率的值。 - MusiGenesis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接