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ファイルの代わりに)コードを介して変更を反映します。これを使用してみてください:-

UIWebViewで相対パスまたはファイルを使用するには、正しいbaseURLパラメーターを使用してHTMLをビューにロードする必要があります。

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

baseURLは、ファイル参照としてNSURLオブジェクトを受け入れます。必要に応じてローカルURLまたはWebURLを指定できます。必要に応じてcssファイルを追加しますwebViewDidFinishLoad:(UIWebView *)webView

注:-.jsファイルを選択し、コンパイル済みコードであることを示すブルズアイ列のチェックを外します(そうでない場合は警告が表示されます)。

これがあなたを動かすかもしれないUIWebviewJavascriptチュートリアルです。

于 2012-05-17T08:19:40.097 に答える