XCGalleryView
新しく XCGalleryView というクラスを作った。
@class XCGalleryView;
@protocol XCGalleryViewDelegate
-(NSInteger)numberViewsInGallery:(XCGalleryView*)galleryView;
-(UIImage*)galleryImage:(XCGalleryView*)galleryView filenameAtIndex:(NSUInteger)index;
@end
@interface XCGalleryView : UIView <UIScrollViewDelegate> {
NSInteger currentImageIndex_;
UIScrollView* scrollView_;
NSInteger contentOffsetIndex_;
NSMutableArray* imageScrollViews_;
CGSize previousScrollSize_;
CGFloat spaceWidth_;
id <XCGalleryViewDelegate> delegate_;
}
@property (nonatomic, assign) NSInteger currentImageIndex;
@property (nonatomic, retain) UIScrollView* scrollView;
@property (nonatomic, assign) NSInteger contentOffsetIndex;
@property (nonatomic, retain) NSMutableArray* imageScrollViews;
@property (nonatomic, assign) IBOutlet id <XCGalleryViewDelegate> delegate;
@property (nonatomic, assign) CGFloat spaceWidth;
@end合わせて XCGalleryViewDelegateというプロトコルを定義した。UITableViewDataSourceのように表示する画像情報を取得するのに使う。
実装はソースコードを参照のこと。
利用
InterfaceBuilderで UIViewを貼り付けた後、クラスを XCGalleryView に変え、File's Owner をdelegate先にしておく。
そして XCGalleryViewDelegate の2つのメソッドを実装する。
-(NSInteger)numberViewsInGallery:(XCGalleryView*)galleryView
{
return [self.imageFiles count];
}
-(UIImage*)galleryImage:(XCGalleryView*)galleryView filenameAtIndex:(NSUInteger)index
{
return [UIImage imageWithContentsOfFile:[self.imageFiles objectAtIndex:index]];
}これで終わり。
ソースコード
GitHubからどうぞ。
EasyGallery at 2010-09-24 from xcatsan's iOS-Sample-Code - GitHub
参考情報
ライブラリ化にあたっては下記サイトのコードが参考になった。
iPhone/iPad – AppStore like UIScrollView with paging and preview | blog.sallarp.com




Responses
Leave a Response