web-dev-qa-db-ja.com

UIWebViewでズーム/ピンチを有効にする

私は、PDFファイルを含むUIWebViewを持っています。正常に動作します。しかし、pdfファイルでズームを有効にするにはどうすればよいですか?

103
David

「ページが収まるように縮尺する」をオンにしていることを確認してください

228
JEzu

webView.scalesPageToFit=YES;をプログラムで使用できます

click the check box "Scaling" scales Page to fitだけでなくxibで使用している場合

45
Nithinbemitk

IWebViewのズームのためのこのロジック、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以降でテストする必要がありました。

これがあなたのお役に立てば幸いです。 :)

28
iPatel

私はこの質問がかなり古いことを知っていますが、ストーリーボードを使用していて、視覚的な答えを好む人にとってはここにあります。 WebViewの属性インスペクターでこのボックスをチェックするだけです。

enter image description here

23
Scooter

プログラムで行う場合は、使用します

webView.scalesPageToFit = true; 

ストーリーボードを使用している場合、「スケーリング」ページに合わせてチェックボックスをチェックする必要があります enter image description here

16
Ashu

UIWebViewで機能するには、ピンチとズームのscalesPageToFit = YESを設定する必要があります。それは私のために働く。

5