0

私のアプリ バンドルには、複数のアイテムの画像がいくつかあります。

ItemA_largepicture.png

ItemA_smallPicture.png

ItemA_overViewPicture.png

ItemB_largepicture.png

ItemB_smallPicture.png

ItemB_overViewPicture.png

ItemC_largepicture.png

ItemC_smallPicture.png

ItemC_overViewPicture.png

...

たとえば、すべての ItemB の写真を抽出して、scrollView に表示したいと考えています。次のようにして簡単に取得できます

    path=[ItemB stringByAppendingString:@"_largePicture];
    NSString *imagePath=[[NSBundle mainBundle]pathForResource:path ofType:@"png"];
    UIImage *image=[UIImage imageWithContentsOfFile:imagePath];
    [self.image setImage:image];

質問は簡単です。ItemB のすべての写真を取得するにはどうすればよいですか? それらを配列に入れる必要がありますか? どうすればそれを行うことができますか?

4

2 に答える 2

1
largePicturePath=[ItemB stringByAppendingString:@"_largePicture];
smallPicturePath=[ItemB stringByAppendingString:@"_smallPicture];
overViewPicturePath=[ItemB stringByAppendingString:@"_overViewPicture];
NSString *largeImagePath=[[NSBundle mainBundle]pathForResource:largePicturePath ofType:@"png"];
NSString *smallImagePath=[[NSBundle mainBundle]pathForResource:smallPicturePath ofType:@"png"];
NSString *overViewImagePath=[[NSBundle mainBundle]pathForResource:overViewPicturePath ofType:@"png"];

NSArray *imageArray = [[NSArray arrayWithObjects:largeImagePath,smallImagePath,overViewImagePath,nil];

NSEnumerator *e = [imageArray objectEnumerator];

NSString *path;
while (path= [e nextObject]) {
    UIImage *image=[UIImage imageWithContentsOfFile:path];

    ...

}
于 2012-09-18T18:42:08.613 に答える
1

このコードは、mainBundle のすべてをリストする必要があります

NSString *bundleRootPath = [[NSBundle mainBundle] bundlePath];
NSArray *bundleRootContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundleRootPath error:nil];
NSArray *files = [bundleRootContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self beginswith 'ItemA' OR self beginswith 'ItemB' OR self beginswith 'ItemC'"]]; //you can provide your string in ' ' to filter specific content
NSLog(@"%@",files);
于 2012-09-18T19:39:40.480 に答える