Есть ли способ отключить масштабирование, когда страница Scales для Fit включена?
UIWebView отключает масштабирование при масштабированииPageToFit включен
Ответ 1
Это работает для меня:
UIScrollView *scrollView = [webView.subviews objectAtIndex:0];
scrollView.delegate = self;//self must be UIScrollViewDelegate
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return nil;
}
UPDATE: для iOS 5 или выше получите scrollView следующим образом:
webview.scrollView.delegate = self;
Ответ 2
Вместо использования
UIScrollView *scrollView = [webView.subviews objectAtIndex:0];
scrollView.delegate = self;//self must be UIScrollViewDelegate
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return nil;
}
Вы можете использовать это:
webview.scrollView.delegate = self;
-(UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView {
return nil;
}
Второй вариант лучше и полный. Первая логика может выйти из строя в будущих SDK.
Ответ 3
Здесь свойство scrollView
в UIWebView
. Через него вы можете определить это.
Чтобы быть более конкретным, он должен выглядеть следующим образом:
myWebView.scrollView.minimumZoomScale = 1.0;
myWebView.scrollView.maximumZoomScale = 1.0;
Ответ 4
scalesPageToFit
Логическое значение, определяющее, масштабируется ли веб-страница в соответствии с представлением и пользователь может изменить масштаб.
@property (неатомные) BOOL scalesPageToFit
Обсуждение
Если ДА, веб-страница масштабируется, чтобы соответствовать, и пользователь может увеличивать и масштабировать вне. Если НЕТ, пользовательское масштабирование отключено. Значение по умолчанию: NO.
Итак, если вы хотите изменить это поведение, вам, вероятно, придется подклассифицировать UIWebView.
Ответ 5
Изменить: Реализация метода делегата
- (void)webViewDidFinishLoad:(UIWebView *)webView
Для вашего веб-представления и в нем добавьте следующий код:
[webView stringByEvaluatingJavaScriptFromString: @"$('body').bind('touchmove', function(event) { event.preventDefault() });"];
Проблема заключается в том, что это также отключает прокрутку, поскольку отключает перемещение. Если вы хотите сохранить свиток, вы должны написать java script, который заменит метатег viewport следующим образом:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
Ответ 6
поэтому он работает на меня:
NSString *fullURL = @"http://google.com";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
_webView.scrollView.scrollEnabled = TRUE;
_webView.contentMode = UIViewContentModeScaleAspectFit;
_webView.scalesPageToFit = FALSE;
[_webView loadRequest:requestObj];