画像オブジェクトの実装
では、画像オブジェクトの例を紹介しよう。単純にするため、画像のパスを使ってみた。
// データソースのためのクラス
@interface ImageObject : NSObject
{
// 画像ファイルのパス
NSString* path;
}
// プロパティ
@property(assign) NSString* path;
@end
@implementation ImageObject
@synthesize path;
// 画像を表す情報として、パスを使用する
- (NSString*)imageRepresentationType
{
return IKImageBrowserPathRepresentationType;
}
// 画像を表す情報
- (id)imageRepresentation
{
return path;
}
// 画像の識別子
- (NSString*)imageUID
{
return path;
}
// 画像のタイトル
- (id)imageTitle
{
return [path lastPathComponent];
}
@end
ImageObjectというクラスを作成した。プロパティとして、画像のパスを持つ。imageRepresentationTypeメソッドでは、画像のパスを表すIKImageBrowserPathRepresentationTypeを返す。imageRepresentationでは、単にパスを返してやればいい。これで、データソースのための画像オブジェクトの準備が出来た。
画像の並び替え
あとは、データソースとなるクラスで、この画像オブジェクトを作成すればいい。
さらに、ここではデータソースメソッドを1つ追加してみた。imageBrowser:moveItemsAtIndexes:toIndex:である。これは、画像の並び替えをするときに必要となるものだ。
IKImageBrowserView.h
- (BOOL)imageBrowser:(IKImageBrowserView*)browser moveItemsAtIndexes:(NSIndexSet*)indexes toIndex:(NSUInteger)destinationIndex;
これらを実装したものが、次の実行結果だ。デスクトップピクチャのブラウズ表示を行っている。並んでいる順序を変更するところにも注目してほしい。ここにも、リッチなアニメーションが使われている。また、スライダーを使って、サムネイルの大きさの変更にも対応してみた。このあたりの贅沢さが、Leopardらしさを演出している。