【发布时间】:2011-10-31 08:45:45
【问题描述】:
我有一个带有 pdf 文件的 UIWebView。它工作正常。但是我如何启用对 pdf 文件的缩放?
【问题讨论】:
我有一个带有 pdf 文件的 UIWebView。它工作正常。但是我如何启用对 pdf 文件的缩放?
【问题讨论】:
您必须设置 scalesPageToFit=YES 才能在 UIWebView 上进行任何捏合和缩放。它对我有用。
【讨论】:
这个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 及更高版本上进行测试。
我希望这对您有所帮助。 :)
【讨论】:
您可以通过编程方式使用webView.scalesPageToFit=YES;
如果你在 xib 中使用不仅仅是click the check box "Scaling" scales Page to fit
【讨论】:
确保选中“缩放页面以适应”
【讨论】: