Использование изображений Retina в локальном UIWebView

По какой-то причине я не могу заставить UIWebView "хорошо играть" с моими новыми изображениями Retina. Проблема, шаг за шагом:

Я загружаю серию файлов справки HTML из пакета. Мой код загружает разные файлы HTML, если это iPhone 4 ( LWERetinaUtils ниже - это класс утилиты, который я написал). Я прочитал в этом вопросе , что UIWebView не может автоматически определять индикатор @ 2x - и испытал это лично,foo@2x.html и foo.html заключается в том, что теги изображений относятся к изображениям с более высоким разрешением.

Затем я загружаю свой UIWebView следующим образом:

  _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 375.0f)];
  _webView.delegate = self;
  [self _loadPageWithBundleFilename:self.filename];
  [self.view addSubview:_webView];

_loadPageWithBundleFilename: - это просто вспомогательный метод Я написал, чтобы сообщить UIWebView загрузить контент из файла.

Пока все хорошо, мой контент загружается по-разному между iPhone Simulator и iPhone 4 Simulator - и не так, как я ожидал.

Текст появляется точно такого же размера, но изображения Retina кажутся увеличенными (они выглядят пиксельными) и вылетают за правый край экрана.

Я попробовал свойство:

_webView.scalesPageToFit = YES

, и, конечно же, оно помогло изображения выглядят надлежащим образом (по крайней мере, без пикселов). Но тогда мой текст был крошечным (поскольку веб-представление меня довольно сильно уменьшило).

Кто-нибудь знает, как обойти такую ​​проблему? Я видел несколько решений Javascript (, подобных этому ), но они, похоже, просто «перестановка изображений», что я уже делал выше - так что это должно работать, нет ??

Наконец в файлах HTML я имею в виду изображения:


И CSS:

body{ margin:20pt; padding:10pt; line-height:38pt; font-size:24pt; text-align:left; background-color: transparent; font-family:Helvetica,sanserif; width:640pt;}

Я помещаю тег ширины в CSS - похоже, он ничего не меняет.

10
задан Community 23 May 2017 в 12:09
поделиться