MFPhotoBrowser 0.1.0

MFPhotoBrowser 0.1.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年9月

Jiangling Zheng 维护。



  • 作者
  • Jiangling Zheng

简单的图片浏览扩展

示例

要运行示例项目,请克隆仓库,并首先从示例目录中运行 pod install

用法

只需创建一个图片数组和指定要显示的初始索引,然后使用 MFModalPhotoBrowser 或 MFPushPhotoBrowser 显示图片浏览器。

MFGenericPhoto *photo1 = [MFGenericPhoto new];
photo1.photoData = [NSURL URLWithString:@"https://graph.facebook.com/olivier.poitrey/picture"];
MFGenericPhoto *photo2 = [MFGenericPhoto new];
photo2.photoData = [UIImage imageNamed:@"avatar-placeholder.png"];
NSArray *photoModels = @[photo1, photo2];

[MFModalPhotoBrowser showInViewController:parentVC 
photoModels:photoModels initialIndex:1];

功能

虽然 MFPhotoBrowser 的主要目标是提供简单的可扩展性方式,但是它还有一些基本功能

  • 模态/推送转换
  • 双击/滑动来放大/缩小
  • 设备旋转
  • 支持UIImage、NSURL和PHAsset

扩展

该项目是为扩展设计的。它由三个组件(加载器、项视图和浏览器)组成。它们通过接口相互协作。

加载器

加载器负责加载图片数据将其渲染到指定的图像视图。

目前我们有三种类型的图片加载器,分别支持UIImage、NSURL和PHAsset。

您可以继承MFPhotoLoader来支持您的自定义类型,并将其与MFPhotoLoaderFactory注册。

项视图

项视图在图片浏览器中扮演与cell相同的作用,但它必须符合定义一组API以控制项视图生命周期的协议 - MFPhotoItemView。

目前我们有一种类型的项视图(MFGenericPhotoItemView),它只包含一个图像视图。

就像cell一样,您可以通过继承UIView并实现以下三个方法来创建自定义UI(协议 - MFPhotoItemView所需),例如创建一个带有描述性标签的新项视图,这在新闻应用中很常见。

- (void)prepareForReuse;
- (void)render;
- (void)dismissWithCompletion:(void (^)(void))completion;

浏览器

正如其名所示,浏览器是MVC设计模式中的控制器,它控制浏览行为。

有许多自定义方法。

  • 覆盖它来自定义您的展示风格,例如模态、从底部展示、推入导航堆栈。

    - (void)showInViewController:(UIViewController *)viewController;
  • 覆盖它以使用您在上一步中创建的项目视图。

    - (UIView<MFPhotoItemView> *)createPhotoItemView;
  • 覆盖它以自定义浏览器视图顶部的UI,例如添加一个模拟导航栏。

    - (void)setupTopView;
  • 覆盖它以自定义浏览器视图底部的UI,例如添加一个底部栏用于评论/分享/喜欢。

    - (void)setupBottomView;
  • 覆盖它们以处理事件,例如滚动、单击、双击。

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView NS_REQUIRES_SUPER;
    
    - (BOOL)handleSingleTap:(NSUInteger)page;
    
    - (BOOL)handleDoubleTap:(NSUInteger)page;

安装

MFPhotoBrowser可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中

pod "MFPhotoBrowser"

待办事项

  • 状态机:确保照片加载按预期工作。

感谢

MFPhotoBrowser building受到了之前开源工具的启发。以下资源特别有用

  • CorePhotoBroswerVC:另一个照片浏览器
  • SDWebImage:一个库,为UIImageView提供了一个支持从网络上获取远程图像的分类。

作者

郑江陵,[email protected]

许可证

MFPhotoBrowser是MIT许可下的。有关更多信息,请参阅LICENSE文件。