Эта логика для увеличения UIWebView, нет необходимости добавлять UIWebView в UIScrollView
Ну, единственная проблема 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 мне не нужен, чтобы масштабирование работало правильно. Не уверен, какова цель этого кода, поскольку он просто сбрасывает то же значение, которое было установлено ранее, на то же самое значение!
Norman H
1
Да, а зачем вообще нужна часть scrollViewDidEndZooming? Но кроме этого, отличный ответ. Он увеличивал даже те страницы, которые не масштабировались, просто установив свойство «Масштабировать страницу по размеру».
GKK
25
Я знаю, что этот вопрос довольно старый, но для всех, кто использует раскадровку и предпочитает визуальный ответ, вот он. Просто установите этот флажок в инспекторе атрибутов WebView:
вы можете использовать
webView.scalesPageToFit=YES;
программноЕсли вы используете в xib, чем просто
click the check box "Scaling" scales Page to fit
источник
Ну, единственная проблема
webView.scalesPageToFit = YES;
в том, что он изменит исходное содержимое размера шрифта, но я нашел другой вариантДобавьте
<UIWebViewDelegate, UIScrollViewDelegate>
в свой .h файлСоздание вашего
UIWebView.
С загрузкой HTML-файла / содержимого.
Надеюсь, это будет вам полезно. :)
источник
Я знаю, что этот вопрос довольно старый, но для всех, кто использует раскадровку и предпочитает визуальный ответ, вот он. Просто установите этот флажок в инспекторе атрибутов WebView:
источник
Если вы хотите сделать программно, используйте
Если вы используете раскадровку, вы должны установить флажок «Масштабирование» масштабирует страницу по размеру страницы.
источник
Вы ДОЛЖНЫ установить scalePageToFit = YES для любого сжатия и масштабирования для работы в UIWebView. Это работает для меня.
источник