PhotoBrowser 0.8.1

PhotoBrowser 0.8.1

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2018年6月

MochMoch Xiao 维护。



  • 作者
  • Roy Shaw

License CocoaPods Compatible Carthage Compatible Weibo Twitter

PhotoBrowser

PhotoBrowser 是一个轻量级的图片浏览器,类似于微信、微博的图片查看器。

特性

  • 显示和消失动画及手势
  • 支持 GIF
  • 显示长图片

外观如何?

  

使用方法

  • 类似于 UITableView API,我们有用于加载数据和处理动作的 DataSourceDelegate
  • 通过符合协议 PBViewControllerDataSource 并实现 numberOfPagesInViewController: 选择器,告诉 PhotoBrowser 您希望呈现多少页面。
  • 可选地通过 pb_startPage 属性设置初始页面。
  • 用于静态图片 - 遵守协议 PBViewControllerDataSource 并实现 viewController:imageForPageAtIndex: 选择器
  • 用于网页图片 - 遵守协议 PBViewControllerDataSource 并实现 viewController:presentImageView:forPageAtIndex:progressHandler 选择器
  • 支持动画 - 遵守协议 PBViewControllerDataSource 并实现 thumbViewForPageAtIndex: 通知对应imageView的起始和结束位置
  • 动作回调 - 遵守协议 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 文件。