Ta logika do powiększania UIWebView, nie ma potrzeby dodawania UIWebView na UIScrollView
Cóż, jedynym problemem webView.scalesPageToFit = YES;jest to, że zmieni początkową zawartość rozmiaru czcionki, ale znalazłem inną opcję
Dodaj <UIWebViewDelegate, UIScrollViewDelegate>do swojego pliku .h
Stworzenie Twojego 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];
Z załadowanym plikiem / treścią 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.
}
UWAGA: Testowałem na Mac OS X - 10.9.3 z Xcode 5.1.1 i iOS w wersji 6.1 i późniejszych.
ScrollViewDidEndZooming nie był potrzebny, aby powiększanie działało poprawnie. Nie jestem pewien, jaki jest cel tego kodu, ponieważ po prostu resetuje tę samą wartość, która została ustawiona wcześniej, na dokładnie tę samą wartość!
Norman H
1
No właśnie, dlaczego w ogóle potrzebna jest część scrollViewDidEndZooming? Ale poza tym świetna odpowiedź. Powiększyło nawet te strony, które nie były powiększane, po prostu ustawiając właściwość „Dopasuj stronę”.
GKK
25
Wiem, że to pytanie jest dość stare, ale dla każdego, kto używa storyboardu i woli wizualną odpowiedź, oto ona. Po prostu zaznacz to pole w Inspektorze atrybutów WebView:
możesz używać
webView.scalesPageToFit=YES;
programowoJeśli używasz w xib niż tylko
click the check box "Scaling" scales Page to fit
źródło
Cóż, jedynym problemem
webView.scalesPageToFit = YES;
jest to, że zmieni początkową zawartość rozmiaru czcionki, ale znalazłem inną opcjęDodaj
<UIWebViewDelegate, UIScrollViewDelegate>
do swojego pliku .hStworzenie Twojego
UIWebView.
Z załadowanym plikiem / treścią HTML.
Mam nadzieję, że będzie to pomocne dla Ciebie. :)
źródło
Wiem, że to pytanie jest dość stare, ale dla każdego, kto używa storyboardu i woli wizualną odpowiedź, oto ona. Po prostu zaznacz to pole w Inspektorze atrybutów WebView:
źródło
Jeśli chcesz to zrobić programowo, użyj
Jeśli używasz scenorysu, musisz zaznaczyć pole wyboru „Skalowanie” skaluje stronę, aby dopasować
źródło
MUSISZ ustawić scalesPageToFit = YES dla dowolnego szczypania i powiększania, aby działało na UIWebView. To działa dla mnie.
źródło