PhotoBrowser is a light weight photo browser, like the wechat, weibo image viewer.
-
Present & Dismissal animation
-
GIF support
-
Like the
UITableView
API, We haveDataSource
anDelegate
for load data and handle action -
Tell
PhotoBrowser
how many pages would you like to present by conforms protocolPBViewControllerDataSource
and implementnumberOfPagesInViewController:
selector -
Optional set the initialize page by
pb_startPage
property -
Use for static Image
Conforms protocol
PBViewControllerDataSource
and implementviewController:imageForPageAtIndex:
selector -
Use for web image
Conforms protocol
PBViewControllerDataSource
and implementviewController:presentImageView:forPageAtIndex:progressHandler
selector -
Support animation
Conforms protocol
PBViewControllerDataSource
and implementthumbViewForPageAtIndex:
tell the start and ended imageView position -
Action callbacks
Conforms protocol
PBViewControllerDelegate
and implementviewController:didSingleTapedPageAtIndex:presentedImage:
orviewController:didLongPressedPageAtIndex:presentedImage:
handle single tap or long press action
...
PBViewController *pbViewController = [PBViewController new];
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];
}
For more information checkout the Example in project.
PhotoBrowser
is available under the MIT license. See the LICENSE file for more info.
Follow me on Twitter (@mochxiao)