当Scales页面适合为ON时,有没有办法禁用缩放?
答案 0 :(得分:63)
这对我有用:
UIScrollView *scrollView = [webView.subviews objectAtIndex:0];
scrollView.delegate = self;//self must be UIScrollViewDelegate
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return nil;
}
更新:对于iOS 5或更高版本,请像这样获取scrollView:
webview.scrollView.delegate = self;
答案 1 :(得分:12)
而不是使用
UIScrollView *scrollView = [webView.subviews objectAtIndex:0];
scrollView.delegate = self;//self must be UIScrollViewDelegate
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return nil;
}
您可以使用:
webview.scrollView.delegate = self;
-(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView {
return nil;
}
第二种选择更好,更全面。在未来的SDK中,第一个逻辑可能会失败。
答案 2 :(得分:4)
scrollView
中有一个名为UIWebView
的媒体资源。通过它你可以定义它。
更具体地说,它应该是这样的:
myWebView.scrollView.minimumZoomScale = 1.0;
myWebView.scrollView.maximumZoomScale = 1.0;
答案 3 :(得分:3)
<强> scalesPageToFit 强>
确定网页是否适合视图的布尔值 并且用户可以更改比例。
@property(nonatomic)BOOL scalesPageToFit
讨论
如果是,则缩放网页以适应并且用户可以放大和缩放 出。如果为NO,则禁用用户缩放。默认值为NO。
因此,如果您想要更改该行为,您可能必须继承UIWebView。
答案 4 :(得分:3)
编辑: 实施委托方法
- (void)webViewDidFinishLoad:(UIWebView *)webView
对于您的网络视图及其中添加以下代码:
[webView stringByEvaluatingJavaScriptFromString: @"$('body').bind('touchmove', function(event) { event.preventDefault() });"];
问题是这也禁用了滚动,因为它禁用了触摸移动。 如果要保留滚动,则必须编写一个java脚本,该脚本将覆盖视口元标记:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
答案 5 :(得分:-1)
所以它适用于我:
NSString *fullURL = @"http://google.com";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
_webView.scrollView.scrollEnabled = TRUE;
_webView.contentMode = UIViewContentModeScaleAspectFit;
_webView.scalesPageToFit = FALSE;
[_webView loadRequest:requestObj];