iOS 5を使用するiPadアプリでUIWebViewを使用して、ローカルの画像とcssスタイルシートをローカルのHTMLページに表示する際に問題が発生します。
HTMLページ自体が透けて見え、うまくレイアウトされているので、すばらしいです。しかし、問題は、画像が通過するはずの空白の四角があり、テキストやその他の場所でのスタイリングも表示されないことです。
私はSOで非常によく似た質問に出くわしました。そこでは、baseURLを使用してHTMLをビューにロードすると言われ、質問の回答を使用して行いました。しかし、イメージとスタイルはまだ伝わっていませんでした。
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"htm" inDirectory:@"html_files"];
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[web loadHTMLString:htmlString baseURL:baseURL];
UIWebViewは、Interface Builderを使用して配置され、.hファイルに次のように配置されます。@property(nonatomic, retain) IBOutlet UIWebView *web;
私のhtml_files
フォルダの中には:
- index.htm
- img(フォルダ)
- スタイル(フォルダー)
次のコードを使用すると、ログ"index.htm", img, style
にディレクトリが同じに保たれていることが示されましたが、ルートに画像を配置してリンクしようとしましたhtml_files
が、それでも何もありませんでした。
NSString *htmlPath = [path stringByAppendingPathComponent:@"html_files"];
NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:htmlPath];
NSLog(@"%@", dirContents);
そしてindex.htm内で私は次のような画像にリンクしています<img src="img/logo.jpg">
どんなアイデアでも大歓迎です、ありがとう。
編集:ここにプロジェクトへのリンクを追加しました:http ://www.filedropper.com/localhtml (文字通りHTMLファイルを含むUIWebViewなので、大きくて面倒なことは何もありません)