2

plistファイルからUIImageViewにさまざまな画像を表示しようとしていますが、次のようにコードを記述しました。

NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]];    
    imageArray = [picturesDictionary objectForKey:@"PhotosArray"];
    PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

しかし、実際には何も起こらず、私のImageViewは空です!また、画像を後方に転送するための2つのボタンがあります。

Plistの内容: ここに画像の説明を入力してください

4

5 に答える 5

2

plist が正しくありません。

Root ---- Dictionary
     PhotosArray ----- Array
         Item 0   ------ String -- Beach.jpg

次に、このコードを viewController に追加します。Interface imageView が IBOutlet にリンクされていることを確認してください。

NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]];     
NSArray *imageArray = [picturesDictionary objectForKey:@"PhotosArray"]; 
PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:0]];
于 2012-06-01T08:42:06.213 に答える
1

これを使用してみてください:

 PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]];

[imageArray objectAtIndex:1]パスではなく画像名のみを返すため、imageWithContentsOfFileを使用するには、画像名だけでなく画像のパスを指定する必要があります。

于 2012-06-01T08:13:32.427 に答える
1
PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

この部分はこうあるべき

PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]];
于 2012-06-01T08:14:12.027 に答える
0

最初は、あなたの[UIImage imageNamed:[imageArray objectAtIndex:1]];問題を解決していたでしょう。しかし、この問題をこの方法で解決することはできません。これは、この行に問題があるようです。

[controller.view addSubview:PhotosInAlbum];

それはあなたのコントローラーの場合かもしれません。imageviewを追加しようとしている時点では、viewはnilです。

そうでないことを確認してください。cosの場合、PhotosInAlbumはサブビューとしてに追加されませんcontroller.view

于 2012-06-01T08:40:44.230 に答える
0

imageWithContentsOfFile:ファイルへの完全パスまたは部分パスであるパスを使用します。代わりにメソッドを使用できますimageNamed:(ファイルの名前を使用します)。交換するだけ

[UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]];

[UIImage imageNamed:[imageArray objectAtIndex:1]];
于 2012-06-01T08:15:54.037 に答える