【问题标题】:Enable zooming/pinch on UIWebView在 UIWebView 上启用缩放/捏合
【发布时间】:2011-10-31 08:45:45
【问题描述】:

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

【问题讨论】:

    标签: pdf uiwebview


    【解决方案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 的缩放性能有什么建议吗?我在缩放时有一个恼人的黑色效果。
            • 它启用缩放,但会改变初始比例因子
            • 工作,但这会导致其他事情出现问题..例如stackoverflow.com/questions/33617217/…
            • 为我工作。谢谢!
            猜你喜欢
            • 2018-08-27
            • 1970-01-01
            • 1970-01-01
            • 2013-07-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-26
            • 1970-01-01
            相关资源
            最近更新 更多