Увімкнути масштабування / притиснення на UIWebView


106

У мене є UIWebView з pdf-файлом. Це чудово працює. Але як я можу ввімкнути масштабування pdf-файлу?

Відповіді:


231

Переконайтесь, що ви встановили прапорець "Сторінка ваг підходить"


Чи є якісь пропозиції щодо збільшення масштабу продуктивності у форматі PDF? У мене дратує чорний вплив на збільшення.
0wn3r

1
він дозволяє збільшувати масштаб, але змінює початковий коефіцієнт масштабу
Даніель,

Робота, але ця причина проблеми з іншими речами .. наприклад stackoverflow.com/questions/33617217 / ...
jose920405

Працює для мене. Дякую!
діловий час

46

ви можете використовувати webView.scalesPageToFit=YES;програмно

Якщо ви використовуєте в xib, ніж просто click the check box "Scaling" scales Page to fit


29

Ця логіка для збільшення масштабу 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 та останньої.

Я сподіваюся, що це допоможе вам. :)


1
ScrollViewDidEndZooming мені не потрібен, щоб масштабування працювало правильно. Не впевнений, яка мета цього коду, оскільки він просто скидає те саме значення, яке було встановлено раніше, на точно таке ж значення!
Норман Н

1
Я точно, чому взагалі потрібна частина scrollViewDidEndZooming? Але крім цього чудова відповідь. Це зробило навіть ті сторінки, які не збільшували масштаб, просто встановивши властивість "Вага сторінки підходить".
GKK

25

Я знаю, що це запитання досить старе, але для всіх, хто використовує табло та вважає за краще візуальну відповідь. Просто встановіть цей прапорець у інспекторі атрибутів WebView:

введіть тут опис зображення


18

Якщо ви хочете зробити програмно, тоді використовуйте

webView.scalesPageToFit = true; 

Якщо ви використовуєте раскадровщик, вам потрібно встановити прапорець "Масштабування" сторінки масштабів, щоб відповідати введіть тут опис зображення


6

Ви ОБОВ'ЯЗКОВО встановите scalesPageToFit = ТАК для будь-якого защемлення та збільшення масштабу для роботи на UIWebView. Це працює для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.