さて以前からボタンだけ追加してあった機能の実装にはいる。左向きのボタンを押すと過去のキャプチャ画像を表示していくことができる。右はその逆。
フォルダ内のファイル一覧を得やすい様に、ファイル名の形式を変える事にした。頭に "SCAP-"を付ける。
保存フォルダ内でこの接頭辞が付いているファイルのみを対象としよう。安易だが今回の用途には十分だろう。
過去のファイル(およびその逆方向)のファイル名を取得するメソッドを用意した。
FileManager.m
- (NSString*)filenameInSaveFolderWithCurrentFilename:(NSString*)filename direction:(BOOL)direction
{
filename = [filename lastPathComponent];
NSFileManager* fm = [NSFileManager defaultManager];
NSError* error;
NSArray* all_files = [fm contentsOfDirectoryAtPath:[self path]
error:&error];
NSMutableArray* files = [NSMutableArray array];
for(NSString* file in all_files) {
if ([file hasPrefix:FILENAME_PREFIX]) {
[files addObject:file];
}
}
[files sortUsingSelector:@selector(caseInsensitiveCompare:)];
int index = 0;
for (NSString*file in files) {
if ([file isEqualToString:filename]) {
break;
}
index++;
}
NSString* new_filename;
if (direction) {
index++;
} else {
index--;
}
if ([files count] > 0 && index >=0 && index < [files count]) {
new_filename = [[self path] stringByAppendingPathComponent:[files objectAtIndex:index]];
} else {
new_filename = nil;
}
return new_filename;
}
これをボタンハンドラで使い画像を表示するようにした。動かしてみる。
キャプチャ後、左矢印を押す。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFZRlENdvcMgdDDqjgAs-roscJs3D3NkDjTvnK1aBtWiUB8nmuOo6N7K2IbNc7lY4ZpmBrJ53YYVKP_ZICqxb1uPtl1XZo9SUmW49R4ABalYFbqvukc3B5Yirmt9R7k4l9-QlzBD-KtT8/s320/081229-0004.png)
一つ前にキャプチャした画像が表示された。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij6haDhHBg8zZikwb3Q8U54GdKozfRh0iU9h9tlmvdeyZhhyphenhyphenHkO7Ck_MKWDUO7qopUgzMdZLPsD0XAt58IoT4zdK0Qst4KRFbuxsU1s-gvPaNxW0jxfthUnKkIPEPpbvnFLEEeG8lHMII/s320/081229-0005.png)
今は表示される画像毎にウィンドウの大きさが変わってしまう。このままでは使いづらいのである程度固定にすることにしよう。