1

我正在尝试更改字体UIWebView。我尝试使用以下代码更改字体。

NSString *path = [[NSBundle mainBundle] bundlePath];
    NSString *cssPath = [path stringByAppendingPathComponent:@"test.css"]; 

    if(!cssPath)
    {
        NSLog(@"NO");
    }

    NSString *js = [NSString stringWithFormat:@"var cssChild = document.createElement('link');"
                    "cssChild = 'text/css';"
                    "cssChild = 'stylesheet';"
                    "cssChild = '%@';", cssPath];
    js = [NSString stringWithFormat:@"%@ document.getElementsByTagName('head')[0].appendChild(cssChild);", js];

    [webViewOfInitial stringByEvaluatingJavaScriptFromString:js];

我将 css 文件附加到来自互联网的加载页面的标题中。我的css文件就是这样。

@font-face {
    font-family: 'Zawgyi-One';
    font-style: normal;
    src: local('Zawgyi-One');
}

body {
    font-family: 'Zawgyi-One';
}

但是,当我在完成页面加载后检索 html 标签时,我找不到上面的 css 标签。那么如何将该 css 文件附加到当前UIWebView's页眉标签中呢?或者还有其他UIWebView字体更改教程吗?

谢谢。

4

1 回答 1

2

您正在朝着正确的方向前进,但您没有提到您尝试更改的委托方法。您可以将您的 javascript 放在 .js 文件中,因为您以后可能会对其进行更改,这真的很麻烦通过代码(而不是 js 文件)反映更改。尝试使用这个:-

您必须使用正确的 baseURL 参数将 HTML 加载到视图中,才能在 UIWebView 中使用相对路径或文件。

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

baseURL 接受一个 NSURL 对象作为文件引用。您可以根据需要指定一个本地 URL 或网络 URL。webViewDidFinishLoad:(UIWebView *)webView按照您所做的那样添加 css 文件。

注意:- 选择 .js 文件并取消选中表示它为已编译代码的靶心列。(如果不这样做,您只会收到警告)。

这是一个UIWebview Javascript 教程,它可能会让你继续前进。

于 2012-05-17T08:19:40.097 回答