PhotoBrowser
Support Storyboard using PBImageScrollView.
PhotoBrowser は、wechat や weibo 画像ビューアのような軽量の写真ブラウザです。
現在、SlidingPhoto という名前の純粋な Swift バージョンが利用可能です。
UITableView
API と同様に、データをロードしてアクションを処理するためのDelegate
であるDataSource
があります。PBViewControllerDataSource
によって表示したいページ数をPhotoBrowser
伝え、 numberOfPagesInViewController:
selector を実装します。pb_startPage
プロパティによって初期化ページを設定しますPBViewControllerDataSource
に準拠し、 viewController:imageForPageAtIndex:
selector を実装します。PBViewControllerDataSource
に準拠し、 viewController:presentImageView:forPageAtIndex:progressHandler
セレクターを実装します。PBViewControllerDataSource
に準拠し、 thumbViewForPageAtIndex:
の開始位置と終了位置を伝えます。PBViewControllerDelegate
に準拠し、 viewController:didSingleTapedPageAtIndex:presentedImage:
またはviewController:didLongPressedPageAtIndex:presentedImage:
シングル タップまたは長押しアクションを処理します...
PBViewController *pbViewController = [PBViewController new ];
// Use your own subclass of UIImageView to display.
pbViewController.imageViewClass = PBImageView.class;
pbViewController.pb_dataSource = self;
pbViewController.pb_delegate = self;
pbViewController.pb_startPage = sender.tag;
[ self presentViewController: pbViewController animated: YES completion: nil ];
...
...
# pragma mark - PBViewControllerDataSource
- ( NSInteger )numberOfPagesInViewController:(PBViewController *)viewController {
return self. frames . count ;
}
- ( void )viewController:(PBViewController *)viewController presentImageView:(UIImageView *)imageView forPageAtIndex:( NSInteger )index progressHandler:( void (^)( NSInteger , NSInteger ))progressHandler {
NSString *url = [ NSString stringWithFormat: @" https://raw.githubusercontent.com/cuzv/PhotoBrowser/dev/Example/Assets/ %@ .jpg " , @( index + 1 )];
UIImage *placeholder = self. imageViews [ index ]. image ;
[imageView sd_setImageWithURL: [ NSURL URLWithString: url]
placeholderImage: placeholder
options: 0
progress: progressHandler
completed: ^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
}];
}
- (UIView *)thumbViewForPageAtIndex:( NSInteger )index {
if (self. thumb ) {
return self. imageViews [ index ];
}
return nil ;
}
# pragma mark - PBViewControllerDelegate
- ( void )viewController:(PBViewController *)viewController didSingleTapedPageAtIndex:( NSInteger )index presentedImage:(UIImage *)presentedImage {
[ self dismissViewControllerAnimated: YES completion: nil ];
}
詳細については、プロジェクトの例を確認してください。
PhotoBrowser
MIT ライセンスに基づいて利用できます。詳細については、LICENSE ファイルを参照してください。