如何在UIWebView中使用css?

时间:2012-09-03 07:54:43

标签: css ios4 uiwebview

在我从UIViewController派生的类中,我有一个类型为UIWebView *的类变量,名为helpView。我对viewDidLoad使用以下代码。

- (void)viewDidLoad {
    [super viewDidLoad];
    NSURL *helpFileURL=[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/tutorial.html",
                                               [[NSBundle mainBundle] resourcePath]]];
    NSURLRequest *request = [NSURLRequest requestWithURL:helpFileURL];
    [helpView loadRequest:request];
}

并且工作正常,我可以在我的模拟器和设备上看到“tutorial.html”。

现在我的问题是,我想使用一个名为tutorial.css的CSS文件和我的tutorial.html。 以同样的方式,tutorial.html在app bundle中,tutorial.css也在app bundle中。

我应该如何修改上面的代码才能使用? 我自己尝试了一些东西,但都失败了。我没有在网上找到任何明确的答案。 显然,如果我使用通常的:

  <link href="css/tutorial.css" rel="stylesheet" type="text/css" />

在我的tutorial.html文件中还不够。

感谢您提供任何信息。

1 个答案:

答案 0 :(得分:2)

省略css目录,你的捆绑包不能那样工作。

<link href="tutorial.css" rel="stylesheet" type="text/css" />

然后更改您的代码以使用一个很好的基本URL加载html:

- (void)viewDidLoad {
    [super viewDidLoad];

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"tutorial" ofType:@"html"];
    NSString *htmlString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

    NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];

    [webView loadHTMLString:htmlString baseURL:baseURL];
}