【问题标题】:iphone uiwebview programmatic zoomiphone uiwebview 程序化缩放
【发布时间】:2010-02-21 13:10:16
【问题描述】:

我正在开发一个应用程序,它将 html 文件本地保存在 iPhone 文件系统上,然后在 UIWebView 中加载它们。我希望能够在 UIWebView 上以编程方式缩放或双击,我尝试搜索 javascript 代码,但我只能滚动。

我也尝试了 webview 转换,但对我来说没有成功。 我找到了这个方法

sendAction:to:from:forEvent:

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#jumpTo_26

在 UIApplication 类中,可以向控件发送操作。

有人知道如何以编程方式将双击动作发送到某个 x,y 上的 UIWebView 吗?

【问题讨论】:

    标签: iphone uiwebview zooming


    【解决方案1】:

    获取 UIWebview 的子视图,它是一个 UIScrollview

    UIScrollView *sview = [[webview subviews] objectAtIndex:0];
    

    然后使用缩放方法。

    【讨论】:

    • 你是对的,但我无法从该滚动视图中获取 Tap Gesture。
    【解决方案2】:

    这是我能找到的唯一方法:(如果您愿意,请指定您自己的尺寸,我试图在输入表单字段后缩小)

    UIScrollView *sv = [[webViewView subviews] objectAtIndex:0]; [sv zoomToRect:CGRectMake(0, 0, sv.contentSize.width, sv.contentSize.height) animated:YES];

    【讨论】:

    • 与 IOS5 一样,您现在可以调用 webview.scrollview
    【解决方案3】:

    要从 UIWebview 获得双击,你需要继承 UIWindow 并使用该方法,

    - (void)sendEvent:(UIEvent *)event {
        NSLog(@"tap detect");
        NSArray *allTouches = [[event allTouches] allObjects];
        UITouch *touch = [[event allTouches] anyObject];
        UIView *touchView = [touch view];
    
        if (touchView && [touchView isDescendantOfView:urWebview]) {
            //
            // touchesBegan
            //
    
            if(touch.tapCount==2){
                //
                // doubletap
                //
            }
        }
    }
    

    在 UIWindow 的这个子类中,使用委托或通知来捕捉你的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多