| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- //
- // MOPictureBrowser.h
- // MOPictureBrowser
- //
- // https://github.com/ebamboo/BBPictureBrowser
- //
- #import <UIKit/UIKit.h>
- /// 本地图片和网络图片都会试图获取一个压缩图片进行展示
- /// 只有在成功获取到压缩图片之后,才会真正展示图片
- /// 本地图片使用 Apple 提供的压缩算法获取压缩图片
- /// 网络图片使用 SDWebImage 提供的压缩算法获取压缩图片
- @interface MOPictureModel : NSObject
- + (nonnull instancetype)modelWithLocalImage:(nullable UIImage *)local webImage:(nullable NSString *)web;
- - (nonnull instancetype)initWithLocalImage:(nullable UIImage *)local webImage:(nullable NSString *)web;
- @property (nullable, nonatomic, readonly) UIImage *mo_local;
- @property (nullable, nonatomic, readonly) NSString *mo_web;
- @property (nullable, nonatomic, readonly) UIImage *mo_localThumb;
- @property (nullable, nonatomic, readonly) UIImage *mo_webThumb;
- @end
- @class MOPictureBrowser;
- @protocol MOPictureBrowserDelegate <NSObject>
- @optional
- /// 图片浏览器关闭动画
- /// return:图片浏览器关闭时,动画缩放到的视图
- /// 若返回 nil 则没有关闭动画
- - (nullable UIView *)mo_pictureBrowser:(nullable MOPictureBrowser *)browser animateToViewAtIndex:(NSInteger)index;
- /// 自定义顶部工具栏
- /// 高度返回 UITableViewAutomaticDimension 时,表示自适应高度(参考 UITableViewCell 自适应高度)
- - (CGFloat)mo_pictureBrowserHeightForTopBar:(nullable MOPictureBrowser *)browser;
- - (nullable UIView *)bb_pictureBrowserViewForTopBar:(nullable MOPictureBrowser *)browser;
- /// 自定义底部工具栏
- /// 高度返回 UITableViewAutomaticDimension 时,表示自适应高度(参考 UITableViewCell 自适应高度)
- - (CGFloat)mo_pictureBrowserHeightForBottomBar:(nullable MOPictureBrowser *)browser;
- - (nullable UIView *)bb_pictureBrowserViewForBottomBar:(nullable MOPictureBrowser *)browser;
- /// 图片浏览器展示了下标为 index 的图片
- /// 调用 -mo_openOnView:atIndex: 方法时,也会调用本方法
- - (void)mo_pictureBrowser:(nullable MOPictureBrowser *)browser didShowPictureAtIndex:(NSInteger)index topBar:(nullable UIView *)topBar bottomBar:(nullable UIView *)bottomBar;
- @end
- /// !!! 注意 !!!
- /// 本地图片使用 Apple 提供的压缩算法
- /// 网络图片使用 SDWebImage 提供的压缩算法
- @interface MOPictureBrowser : UIView
- /// 构造器
- /// @param pictures 要展示的图片
- /// @param delegate 设置代理可以监听和响应事件、实现自定义 UI 和关闭动画
- /// @param view 图片浏览器打开时动画开始位置视图,若为 nil 则没有打开动画
- + (nonnull instancetype)browserWithPictures:(nonnull NSArray<MOPictureModel *> *)pictures delegate:(nullable id<MOPictureBrowserDelegate>)delegate animateFromView:(nullable UIView *)view;
- - (nonnull instancetype)initWithPictures:(nonnull NSArray<MOPictureModel *> *)pictures delegate:(nullable id<MOPictureBrowserDelegate>)delegate animateFromView:(nullable UIView *)view;
- - (void)mo_openOnView:(nonnull UIView *)onView atIndex:(NSInteger)index;
- - (void)mo_close;
- @property (nonatomic, readonly) NSInteger mo_currentIndex;
- @property (nonatomic, readonly, nonnull) NSArray <MOPictureModel *> *mo_pictureList;
- @end
|