Cuzv PhotoBrowser Save

PhotoBrowser is a light weight photo browser, like the wechat, weibo image viewer.

Project README

License CocoaPods Compatible Carthage Compatible Weibo Twitter

PhotoBrowser

PhotoBrowser is a light weight photo browser, like the wechat, weibo image viewer.

Now, the pure Swift version named SlidingPhoto is available.

Features

  • Present & Dismissal animation & gesture
  • GIF support
  • Display long picture

How does it look like?

  

Usage

  • Like the UITableView API, We have DataSource an Delegate for load data and handle action
  • Tell PhotoBrowser how many pages would you like to present by conforms protocol PBViewControllerDataSource and implement numberOfPagesInViewController: selector
  • Optional set the initialize page by pb_startPage property
  • Use for static Image - Conforms protocol PBViewControllerDataSource and implement viewController:imageForPageAtIndex: selector
  • Use for web image - Conforms protocol PBViewControllerDataSource and implement viewController:presentImageView:forPageAtIndex:progressHandler selector
  • Support animation - Conforms protocol PBViewControllerDataSource and implement thumbViewForPageAtIndex: tell the start and ended imageView position
  • Action callbacks - Conforms protocol PBViewControllerDelegate and implement viewController:didSingleTapedPageAtIndex:presentedImage: or viewController:didLongPressedPageAtIndex:presentedImage: handle single tap or long press action

Demo code

...
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];
}

For more information checkout the Example in project.

License

PhotoBrowser is available under the MIT license. See the LICENSE file for more info.

Open Source Agenda is not affiliated with "Cuzv PhotoBrowser" Project. README Source: cuzv/PhotoBrowser
Stars
216
Open Issues
4
Last Commit
5 years ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating