8

UIWebview用户在UISegmentedControl. 出于某种原因,我无法让它允许pinch/zooming。我在方法中设置了以下代码viewDidLoad:,所以它应该可以工作。

self.myWebView = [[[UIWebView alloc] initWithFrame:self.view.frame] autorelease];
self.myWebView.backgroundColor = [UIColor whiteColor];
self.myWebView.scalesPageToFit = YES;
self.myWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
self.myWebView.delegate = self;
[self.view addSubview: myWebView];

我尝试从 NIB 加载UIWebView并以编程方式创建它,但无济于事。有什么我想念的吗?什么可能导致 webview 忽略捏合和缩放?

谢谢!

4

7 回答 7

9
  [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.zoom = 5.0;"];

似乎是合适的解决方案

于 2010-12-14T06:53:24.653 回答
7

我通过设置视口解决了这个问题:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.5; user-scalable=1"/>

祝你好运

于 2011-01-19T14:14:39.100 回答
6

我看到你正在设置autoresizingMask. 这是否意味着您创建了UIWebView初始大小为 的CGRectZero?您可以与文档进行交互吗?我的意思是,滚动/点击有效吗?

于 2010-02-28T13:49:55.163 回答
4

根据我的经验,您需要在 UIWebView 加载之前设置 scalesPageToFit。这意味着在 viewDidLoad 等之前设置。我所做的是在“shouldStartLoadWithRequest”中设置它

- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    //make sure that the page scales when it is loaded :-)
    theWebView.scalesPageToFit = YES;
    return YES;
}

我对文档的解释是 scalesPageToFit 属性决定了如何加载页面。它不会在事后改变事情。

希望这可以帮助。

于 2011-04-19T02:31:45.933 回答
2

供参考:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.5; user-scalable=1"/>

有效,但

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.5; user-scalable=YES"/>

不在 iPhone 上。文档说使用是/否。我想在这种情况下案件很重要。在 obj-c 中,值为 YES/NO 和 1/0

于 2011-04-27T16:34:55.197 回答
1

这是 Apple 在 webview 类参考中建议的内容。

重要提示:您不应该在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆并错误处理。

于 2011-05-23T13:25:04.757 回答
1

您必须启用多点触控。捏合在屏幕上涉及多个手指:

[myWebView setMultipleTouchEnabled:YES]

于 2010-10-10T10:21:20.717 回答