UIWebView에서 확대 / 축소 / 핀치 활성화


106

pdf 파일이있는 UIWebView가 있습니다. 잘 작동합니다. 그러나 pdf 파일에서 확대 / 축소를 활성화하려면 어떻게해야합니까?

답변:


231

"페이지에 맞게 크기 조정"을 선택했는지 확인하십시오.


PDF의 확대 / 축소 성능에 대한 제안이 있습니까? 확대 / 축소에 짜증나는 검은 색 효과가 있습니다.
0wn3r 2014

1
그것은 확대 할 수 있지만, 초기 스케일 팩터 변경
다니엘

작동하지만 이것은 다른 것들에 문제를 일으 킵니다. 예를 들어 stackoverflow.com/questions/33617217/…
jose920405

나를 위해 작동합니다. 감사!
businesscasual

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은 확대 / 축소가 올바르게 작동하는 데 필요하지 않았습니다. 이전에 설정된 동일한 값을 정확히 동일한 값으로 재설정하는 것이므로 해당 코드의 의도가 무엇인지 확실하지 않습니다!
Norman H

1
정확히, scrollViewDidEndZooming 부분이 왜 필요한가요? 그러나 그 외에는 훌륭한 대답입니다. "페이지에 맞게 크기 조정"속성을 설정하여 확대되지 않은 페이지도 확대 / 축소했습니다.
GKK

25

나는이 질문이 꽤 오래되었다는 것을 알고 있지만, 스토리 보드를 사용하고 여기에서 시각적 인 대답을 선호하는 모든 사람들에게는 그것이 있습니다. WebView의 속성 검사기에서이 상자를 선택하면됩니다.

여기에 이미지 설명 입력


18

프로그래밍 방식으로 수행하려면

webView.scalesPageToFit = true; 

스토리 보드를 사용하는 경우 "크기 조정"확인란을 선택해야 페이지 크기에 맞게 조정됩니다. 여기에 이미지 설명 입력


6

UIWebView에서 작동하려면 축소 및 확대 / 축소에 대해 scalesPageToFit = YES를 설정해야합니다. 그것은 나를 위해 일합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.