Ответ 1
Вы ДОЛЖНЫ установить scalesPageToFit = YES для любого ущемления и масштабирования для работы с UIWebView
У меня есть UIWebView
, который внутри a UIScrollView
(scrollview содержит другой компонент)
Я попытался включить multitouch как в Конструктор интерфейсов, так и Programmatic на UIWebView
, но он по-прежнему не может масштабировать для html, мне нужно обрабатывать как масштаб, так и UIScrollView
и UIWebView
? Или что-то, что мне не нужно устанавливать?
Вы ДОЛЖНЫ установить scalesPageToFit = YES для любого ущемления и масштабирования для работы с UIWebView
ОК, вам нужно сделать и выше, но и следующее. У меня был веб-вид в главном представлении, и это не сработало.
<UIScrollViewDelegate>
в своем контроллере просмотра, перетащите делегат представления прокрутки в контроллер представления в Interface Builder и внедрите метод viewForZoomingInScrollView
. Это должно вернуть указатель на UIScrollView (вернуть myScrollView).Вам нужно реализовать метод viewForZoomingInScrollView в вашем контроллере, или масштабирование ничего не сделает. (Я действительно не знаю, зачем это нужно, но там вы идете.)
Подробнее см. http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html.
С JavaScript вы можете управлять уровнем масштабирования, хотя решение oly, которое я нашел, выглядит негласно.
Скажите, что у вас есть <head>
:
<meta id="vp" name="viewport" content="width=768,initial-scale=1.0">
Чтобы увеличить изображение до 4x и позволить пользователю изменять масштаб, дважды измените содержание:
var vp = document.getElementById('vp');
vp.content = "width=767,minimum-scale=4.0,maximum-scale=4.0,user-scalable=yes";
vp.content = "width=768,minimum-scale=0.25,maximum-scale=10.0,user-scalable=yes";
Переключение ширины очень важно - в противном случае Mobile Safari имеет серьезные перерисовывающие ошибки (из-за чрезмерной оптимизации).
Вы не можете просто установить initial-scale
снова - он игнорируется второй раз.