まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

連番ファイルを読み込んで表示

パラパラアニメなどで連番ファイルを読み込んだり、ファイル名に変数を使いたい場合のファイル指定の方法です。ド基本かもですが、個人的にObjective-Cでは初めてだったので(oFではあったけど)。

まず3つのPNGファイルを用意しておきます。ファイル名は1Butterfly@2x.png・2Butterfly@2x.png・3Butterfly@2x.pngの3つ。Butterfly1@2x.pngだと後でちょっと困るので、番号は先頭につけています。
ボタンを押すと数がカウントされて、その数がファイル名に含まれているものを表示します。カウント1のときには1Butterfly@2x.pngを表示、カウント2のときは2Butterfly@2x.pngを表示という具合です。

以下サンプルです。これはPNGファイルを読み込ませていますが、前回のplistでも良いですね。

・ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    int count;
}
@property (weak, nonatomic) IBOutlet UIImageView *PictRenban;

- (IBAction)countUp:(id)sender;


@end

・ViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    count = 0;
}
...

- (IBAction)countUp:(id)sender {
    count = count + 1;
    if (count == 4) {
        count = 1;
    }
    NSLog(@"%d",count);
//数値を文字列に
    NSString *ImageNum = [NSString stringWithFormat : @"%d", count];
    NSString *Imagename = [NSString stringWithFormat:@"%@Butterfly@2x.png",ImageNum];
    _PictRenban.image = [UIImage imageNamed:Imagename];
}
@end

ファイル名の指定をもしButterfly1@2x.pngとすると、"Butterfly%@@2x.png"となってエラーが出てしまいます。おそらくこう指定しても読み込むやり方はあると思うのですが、メンドいので先頭に%@を持ってきて、"%@Butterfly@2x.png"としました。