[XCODE] UIWebViewの表示コンテンツに独自のCSSを追加適用する方法
こんにちは、UIWebViewを大活用中の
@yoheiMuneです。
今回は、UIWebViewで表示しているコンテンツに対して、 独自のCSSを適用する方法をブログに書きたいと思います(・∀・)

これで、UIWebViewの表示が出来ます。
読み込んだ結果に対して、独自のCSSを適用する為には、以下の手順を行います。
(他にも手順があるかもですが、分かっている手順を示します)
(ヘッダファイルでDelegateを指定する箇所)
(実装ファイルでwebViewDidFinished:を実装する部分)
今回は、JavaScriptを実行することで、独自CSSを適用するように作成しました。
これで、独自のCSSが適用されました。
今回の例では、GoogleのTopページが、以下のように変化しました。

JavaScriptの知識があればもっともっと便利なことが出来そうです☆
今回は、iPhone上で表示した際に、imgやiframeの横幅がはみ出るのを防ぐ(width=100%を適用する)為に、 この方法を調べました。
今後も便利なお話があれば、ブログに記載したいと思います。
今回もお読み頂きましてありがとうございました!
今回は、UIWebViewで表示しているコンテンツに対して、 独自のCSSを適用する方法をブログに書きたいと思います(・∀・)

UIWebViewに独自のCSSを適用する
UIWebViewでは通常、以下のような読み込みを行うかと思います。// UIWebViewのインスタンスを生成する。 UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame]; // 今回は、GoogleのTopページを表示してみる。 NSURL *url = [NSURL URLWithString:@"http://www.google.com/"]; NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; [webView loadRequest:request];
これで、UIWebViewの表示が出来ます。
読み込んだ結果に対して、独自のCSSを適用する為には、以下の手順を行います。
(他にも手順があるかもですが、分かっている手順を示します)
1、UIWebViewのDelegateを設定し、「webViewDidFinishLoad:」を実装する。
UIWebViewの読み込みが完了した時点でCSSを適用したいので、Delegateを設定し、読み込み完了時に呼び出される webViewDidFinished:を実装します。(ヘッダファイルでDelegateを指定する箇所)
@interface WebViewController : UIViewController@end
(実装ファイルでwebViewDidFinished:を実装する部分)
- (void)webViewDidFinishLoad:(UIWebView *)webView {
}
2、独自のCSSを適用する
webViewDidFinishLoad:で独自のCSSを適用します。今回は、JavaScriptを実行することで、独自CSSを適用するように作成しました。
- (void)webViewDidFinishLoad:(UIWebView *)webView {
// 追加適用するCSSを取得します。
NSString *css = @"body{background-color:red;} *{font-style:italic;}";
// 追加適用するCSSを適用する為の
// JavaScriptを作成します。
NSMutableString *javascript = [NSMutableStringstring];
[javascript appendString:@"var style = document.createElement('style');"];
[javascript appendString:@"style.type = 'text/css';"];
[javascript appendFormat:@"var cssContent = document.createTextNode('%@');", css];
[javascript appendString:@"style.appendChild(cssContent);"];
[javascript appendString:@"document.body.appendChild(style);"];
// JavaScriptを実行します。
[webView stringByEvaluatingJavaScriptFromString:javascript];
}
これで、独自のCSSが適用されました。
今回の例では、GoogleのTopページが、以下のように変化しました。

最後に
UIWebViewではJavaScriptを実行できるとのことで、便利な感じですね(*´∇`*)JavaScriptの知識があればもっともっと便利なことが出来そうです☆
今回は、iPhone上で表示した際に、imgやiframeの横幅がはみ出るのを防ぐ(width=100%を適用する)為に、 この方法を調べました。
今後も便利なお話があれば、ブログに記載したいと思います。
今回もお読み頂きましてありがとうございました!






