Центрировать изображение в UIWebView - PullRequest
1 голос
/ 13 марта 2010

Кто-нибудь знает возможность центрировать простые картинки в UIWebview без использования hmtl / css? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 марта 2010

Хотя он не включает HTML, вы можете центрировать изображения в UIWebView только в Objective-C, вроде. Существует действительно прямой мост к всему , который вы можете сделать в JavaScript, HTML, CSS или чем-либо еще с помощью WebKit API (каркас, стоящий за UIWebView и связанными с ним классами). Кроме того, WebKit создает полный документ, так же, как вы можете сделать с HTML, когда он представляет документы не в формате HTML. (Я не могу подтвердить это для всех типов мультимедиа, но абсолютно могу для изображений.) Таким образом, вы можете центрировать изображение, загруженное непосредственно из URL ресурса, выполнив javascript, например, такой:

 var img = document.getElementsByTagName('img')[0];
 img.style.margin="auto";
 img.style.display="block"

(вы можете проверить это в Safari, загрузив изображение, а затем введя в строку заголовка «javascript: var img = document ...», где вы включаете полный javascript в одну строку, а затем нажимаете Enter. В любом случае, в вашем настоящем приложении вам просто нужно

 -[UIWebView stringByEvaluatingJavaScriptFromString:(NSString *)script]

(с приведенным выше сценарием (NSString *), очевидно), чтобы центрировать изображение как загруженное непосредственно из URL-адреса изображения. Примечание: это будет работать только для горизонтального центрирования, а не для вертикального. Вероятно, есть способ сделать это, но он, вероятно, значительно сложнее.

1 голос
/ 13 марта 2010

Это невозможно - UIWebView отображает веб-контент, больше ничего. Используйте UIImageView, если вам нужно отобразить изображения в вашем приложении.

Редактировать: комментарий Ноя заставил меня взглянуть дальше, и можно загрузить локальные файлы, используя loadData:MIMEType:textEncodingName:baseURL:, но я не уверен, какая там ситуация с центрированием. loadHTMLString:baseURL: - это самый простой способ получить эту функциональность, но, конечно, вы спрашивали, как это сделать без html / css.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...