1

我对 iOS 开发非常陌生,在 HTML 文件中显示图像时遇到问题。我成功地在 webView 中显示了 html 文件,但没有显示其中的图像。我已将 png 文件添加到检索 html 文件的同一文件夹中,但

background-image: url(bg1.png);

也不是

<img src="logo.png"/>

似乎工作。

我想我已经找到了将外部文件添加到 iOS 应用程序的方法,因为我成功地将这些图片设置为 webView 的背景,我的问题是 HTML 文件不显示它。我还在几个浏览器中测试了该文件,没有问题。

我是写错了路径还是这是一个更简单的新手错误?

提前致谢。

4

3 回答 3

4

只需在 img src 标签中正确设置图像文件的路径即可。你会明白的。并设置图像的宽度和高度。并在您的项目中添加图像文件。对于具体的答案,您可以分享详细信息。

更新:

NSString *readmePath = [[NSBundle mainBundle] pathForResource:@"demo.html" ofType:nil];
    NSString *html = [NSString stringWithContentsOfFile:readmePath encoding:NSUTF8StringEncoding error:NULL];

NSString *path = [[NSBundle mainBundle] bundlePath];
        NSURL *baseURL = [NSURL fileURLWithPath:path];
        [webview loadHTMLString:html baseURL:baseURL];

demo.html 是您项目中的 html 文件。这将解决您的问题,并且在 img src 标签中只需使用带扩展名的图像文件名。

于 2013-08-13T08:41:17.353 回答
3

使用相对路径或文件:引用图像的路径不适用于 UIWebView。相反,您必须使用正确的 baseURL 将 HTML 加载到视图中:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:htmlString baseURL:baseURL];

然后,您可以像这样引用您的图像:

<img src="myimage.png">

或者像这样在 CSS 中:

background-image: url(loading.gif)

例子 :

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"bgfull.png"];
NSURL *url = [[NSURL alloc] initFileURLWithPath:path isDirectory:NO];
NSString *size = [@"100%25" stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSString *contentHtml = [NSString stringWithFormat:@"<html>\
                                 <head>\
                                 <style type=\"text/css\">\
                                 html {height:%@;}\
                                 body {height:%@; margin:0; padding:0; color:white; font-size:40px;}\
                                 #bg {position:fixed; top:0; left:0; width:%@; height:%@;}\
                                 #content {position:relative; z-index:1;}\
                                 </style>\
                                 </head>\
                                 <body>\
                                 <div id=\"bg\"><img src=\"%@\" width=\"%@\" height=\"%@\"></div>\
                                 <div id=\"content\"><font color=\"#DAF899\" size=\"+4\"><b>%@</b></font><p>%@</p></div>\
                                 </body>\
                                 </html>", size, size, size, size, url, size, size, self.navigationItem.title, content];

[webView loadHTMLString:contentHtml baseURL:nil];
于 2013-08-13T08:57:43.507 回答
0

我会使用UIImageorUIImageView而不是UIWebView. 如果您使用UIWebView的是捆绑包中的 amd 图片,则必须使用pathnot as声明它url。您也可以UIWebView用来显示来自在线资源的图像。

于 2013-08-13T08:41:40.610 回答