在UIWebView上启用缩放/缩小


106

我有一个带有pdf文件的UIWebView。它工作正常。但是如何启用pdf文件的缩放功能?

Answers:



46

您可以以webView.scalesPageToFit=YES;编程方式使用

如果您在xib中使用的不只是 click the check box "Scaling" scales Page to fit


29

此逻辑用于缩放UIWebView,无需在UIScrollView上添加UIWebView

好吧,唯一的问题webView.scalesPageToFit = YES;是,它将改变字体大小的初始内容,但是我发现了其他选择

添加<UIWebViewDelegate, UIScrollViewDelegate>到您的.h文件

创建您的 UIWebView.

self.mWebview = [[UIWebView alloc] init];
self.mWebview.delegate = self; /// set delegate method of UIWebView
self.mWebview.frame = CGRectMake(0, 35, self.view.bounds.size.width, self.view.bounds.size.height - 80); // set frame whatever you want..
[self.mWebview setOpaque:NO];
self.mWebview.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.mWebview];

带有加载的HTML文件/内容。

NSString* htmlString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"File Name"ofType:@"html"] encoding:NSUTF8StringEncoding error:nil];
[self.mWebview loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];


#pragma mark -
#pragma mark - Webview Delegate Methods

- (void) webViewDidFinishLoad:(UIWebView *)webView
{
    webView.scrollView.delegate = self; // set delegate method of UISrollView
    webView.scrollView.maximumZoomScale = 20; // set as you want.
    webView.scrollView.minimumZoomScale = 1; // set as you want.

    //// Below two line is for iOS 6, If your app only supported iOS 7 then no need to write this.
    webView.scrollView.zoomScale = 2;
    webView.scrollView.zoomScale = 1;
}

#pragma mark -
#pragma mark - UIScrollView Delegate Methods

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
    self.mWebview.scrollView.maximumZoomScale = 20; // set similar to previous.
}

注意:我必须在Mac OS X-10.9.3上使用Xcode 5.1.1和iOS版本6.1及更高版本进行测试。

希望对您有帮助。:)


1
我不需要scrollViewDidEndZooming来使缩放正常工作。不确定该代码的用途是什么,因为它只是将先前设置的相同值重置为完全相同的值!
诺曼H

1
是的,为什么根本需要scrollViewDidEndZooming部分?但是除此之外,一流的答案。仅通过设置“缩放页面以适合”属性,即使是没有缩放的页面也可以缩放。
GKK

25

我知道这个问题已经很老了,但是对于每个使用情节提要并且更喜欢视觉答案的人来说,它是。只需在WebView的“属性”检查器中选中此框:

在此处输入图片说明


18

如果要通过编程方式进行操作,请使用

webView.scalesPageToFit = true; 

如果使用情节提要,则必须勾选“缩放”复选框,以缩放页面以适合 在此处输入图片说明


6

您必须将scalesPageToFit = YES设置为任何缩放和缩放才能在UIWebView上工作。它对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.