2

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なので、大きくて面倒なことは何もありません)

4

1 に答える 1

3

さて、あなたが犯した間違いはここにあります。パスを使用する場所では、imgタグで画像名のみを使用すると言いました。

iOS では、リソースがどこにあっても、フォルダーの数に関係なく、すべてのリソースを 1 つのバンドルに追加するだけです。

変更後のスクリーンショットの例

ここにリンクがあります。index.htm のみに変更を加えていることを確認してください。

于 2012-10-03T11:26:22.413 に答える