2012-08-14 62 views
2

如果我创建它们呈现的内联样式,但是尝试引用xCode中同一组和目录中的css文件时,它们不会呈现。ios - 无法从UIWebView获取HTML格式的css文件样式

这里是我做的:

<html> 
<head> 
    <link href="main.css" rel="stylesheet" type="text/css" /> 
</head> 

<body> 

    <h1>Hello, world! Learn</h1> 

    <p> 
    <a href="myscheme://advertising" class="buttonStyle">Click me!</a> 
    </p> 
</body> 
</html> 

,然后我呼吁的main.css这样的css文件:

body {background-color:#b0c4de;} 
p {background-color:#e0ffff;} 

会有人知道为什么会不会使CSS?我是否错过了HTML标题中的重要内容?

这里是我所说的HTML摆在首位:

- (void)viewDidAppear:(BOOL)animated 
{ 
    NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn" 
                 ofType:@"html"]; 

    NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil]; 
    [theWebView loadHTMLString:htmlString baseURL:nil]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:htmlFile]]; 

    [theWebView loadRequest:request]; 
} 

回答

8

的问题是在

[theWebView loadHTMLString:htmlString baseURL:nil]; 

因为基本URL是零,网页视图没有办法来确定你的CSS文件是。而不是手动创建数据并加载它,将HTML文件的路径直接传递给UIWebView:

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn" ofType:@"html"]; 
NSURL *url = [NSURL fileURLWithPath:htmlFile]; 
NSURLRequest *rq = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:rq]; 
+0

作品 - 非常漂亮! – GeekedOut 2012-08-14 14:57:24

+0

谢谢...它是一个哇。但我的情况有点不同。我的css文件在css文件夹中。我正在以css/style.css的形式访问它。在这种情况下,它仍然没有访问CSS。而如果我把CSS放在该文件夹中,并访问style.css只有它的工作。你能帮我吗。我需要放在各自的文件夹中的原因是为了防止未来的混乱。请帮忙。 – Debopam 2013-02-22 05:58:05

+0

是否有必要将所有的CSS,html,js文件放在一个文件夹中,还是可以将它们分割成不同的文件夹? – Satyam 2013-08-26 12:32:37