在 UIWebView 上启用缩放/捏合
Posted
技术标签:
【中文标题】在 UIWebView 上启用缩放/捏合【英文标题】:Enable zooming/pinch on UIWebView 【发布时间】:2011-10-31 08:45:45 【问题描述】:我有一个带有 pdf 文件的 UIWebView。它工作正常。但是我如何启用对 pdf 文件的缩放?
【问题讨论】:
【参考方案1】:如果您想以编程方式进行操作,请使用
webView.scalesPageToFit = true;
如果您使用情节提要,则必须勾选复选框“缩放”缩放页面以适应
【讨论】:
【参考方案2】:您必须设置 scalesPageToFit=YES 才能在 UIWebView 上进行任何捏合和缩放。它对我有用。
【讨论】:
【参考方案3】:我知道这个问题已经很老了,但对于每个使用故事板并更喜欢视觉答案的人来说,它就是这样。只需在 WebView 的 Attributes Inspector 中选中此框即可:
【讨论】:
【参考方案4】:这个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 及更高版本上进行测试。
我希望这对您有所帮助。 :)
【讨论】:
我不需要 scrollViewDidEndZooming 来让缩放正常工作。不确定该代码的意图是什么,因为它只是将之前设置的相同值重置为完全相同的值! 没错,为什么需要 scrollViewDidEndZooming 部分?但除此之外,出色的答案。它甚至可以通过设置“缩放页面以适应”属性来缩放那些没有被缩放的页面。【参考方案5】:您可以通过编程方式使用webView.scalesPageToFit=YES;
如果你在 xib 中使用不仅仅是click the check box "Scaling" scales Page to fit
【讨论】:
【参考方案6】:确保选中“缩放页面以适应”
【讨论】:
您对 PDF 的缩放性能有什么建议吗?我在缩放时有一个恼人的黑色效果。 它启用缩放,但会改变初始比例因子 工作,但这会导致其他事情出现问题..例如***.com/questions/33617217/… 为我工作。谢谢!以上是关于在 UIWebView 上启用缩放/捏合的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 10 上的 WKWebView 中打开 PDF 文件时启用捏合缩放手势
在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]