2012-03-13 11 views
3

私のアプリでは、スプラッシュ画面を表示する必要があります。URLから画像を収集し、Default.pngとしてドキュメントフォルダに保存しました。iPhone:ドキュメントフォルダからスプラッシュ画面を表示する

イメージを保存してパスを収集できました。

私の問題は、表示されていないということです。私はどんなエラーも出ませんし、ログにも正しいパスがあります。

これは私のコードです:

NSString *workSpacePath=[[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"/Default.png"]; 
    imgView=[[UIImageView alloc] init]; 
    imgView.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:workSpacePath]];  

    [self.view addSubview:imgView]; 

私はworkSpacePathに正しいパスを得ました。

+0

アプリケーションライフサイクルのどの段階でこれを実行していますか? 'self.view'はまだ存在しますか? – FluffulousChimp

+0

@nitinどのようにドキュメントフォルダにurファイルを保存しますか?あなたは私に教えてくれますか? – ios

+1

**ドキュメントディレクトリからスプラッシュ画面を表示することはできません。 ** –

答えて

6

画像を[UIImage imageNamed:]メソッドで上書きしないでください。このメソッドは、バンドルの一部であるイメージに対してのみ機能します。ドキュメントディレクトリ内のパスに対してnilを返します。そしてそのためにimgView.imageをゼロに設定しました。つまり、イメージを削除します。

これは動作するはずです:

NSString *workSpacePath=[[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"Default.png"]; 
imgView=[[UIImageView alloc] init]; 
imgView.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:workSpacePath]];  
//imgView.image=[UIImage imageNamed:workSpacePath]; 
[self.view addSubview:imgView]; 

しかし、あなたは "本物の" スプラッシュ画面を置き換えることはできません。ただし、元のスプラッシュ画面が消えた後に別の画像を表示することはできます。

+0

ドキュメントフォルダ内のイメージをアプリケーションバンドルに追加するにはどうすればよいですか? – nithin

+0

することはできません。アプリケーションバンドルは読み取り専用です。 –

+0

Webサーバーから解析されたスプラッシュ画面を表示する方法はありますか? – nithin

3

「スプラッシュスクリーン」は、画像に通常Default.pngという名前であり、アプリケーションバンドルに含まれています。 アプリバンドルの内容を変更することはできませんので、アプリの「スプラッシュ画面」を変更することはできません。

+0

ドキュメントフォルダ内のイメージをアプリケーションバンドルに追加するにはどうしたらいいですか? – nithin

+0

できません。アプリのバンドルの内容を変更することはできません。 – rckoenes

1

Default.pngはアプリケーションバンドル内にバンドルする必要があります。つまり、ドキュメントディレクトリパスから必要な外部パスを使用して読み込むことはできません。

カスタムソリューションの1つは、ビューをスプラッシュ画面として作成し、スプラッシュ画面として機能し、一定の時間が経過すると消滅することです。

0

イメージビュー内でイメージを表示しようとしているように見えますが、デフォルトのスプラッシュ画面イメージを置き換えることには関心がありませんが、それはできません。

imgView.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:workSpacePath]]; 
imageView.frame = CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height); 
[self.view addSubview:imgView]; 
関連する問題