iOS 图片操作 WZRecyclePhotoStackView

码农软件 · 软件分类 · 图像(Image) · 2019-05-30 19:12:06

软件介绍

大家想象一下,自己当捧着一堆照片的时候,我们是如何去放置我们的照片的? 可能我们会挑选出我们喜欢的照片放到相册中珍藏,也有可能我们把不喜欢的扔掉。 同时我们还会存在犹豫不觉的情况,觉得,哎,我先放到后面去,一会再看吧。 当然,也有可能,您会考虑,哎,我之前一张是什么图来着,我忘记了,我拿回来看看。

WZRecyclePhotoStackView就是模拟这种生活中的情形而产生的。 在上滑,下滑的部分,借鉴了TinderSimpleSwipeCards

这个StackView的优势是什么?

  • 采用了内存池的设计方式,对于非图片开销,只生成了两个(可配置个数)的容器循环复用

  • 避免了一次性加载数据的内存开销和时间损耗,通过可配置的方式将大量的数据通过多次小部分添加加载进内存中。 同时通过预取的方式将这些新的数据自动补充进需要显示的位置。(在预取过程中您完全可以按照需要修改为异步回调形式)

  • 支持左滑、右滑操作。右滑跳过当前照片,将照片置为底部,最后查看。左滑将底部照片拉回顶部,设置为当前查看。

  • 高度定制化

使用

    typedef NS_ENUM(NSUInteger, WZPhotoStackStatus)
    {
        WZPhotoStackStatusLike = 0,    //上滑 作为喜欢
        WZPhotoStackStatusSkip = 1,    //右滑 作为将照片置于底部
        WZPhotoStackStatusPullBack = 2,//左滑 作为将底部照片取回
        WZPhotoStackStatusHate = 3     //下滑 作为讨厌
    };

    @protocol WZPhotoStackViewDataSource <NSObject>
    @required
    - (UIImage *)photoForSkipQueueInStack:(WZPhotoStackView *)stackView;
    - (UIImage *)photoForRatingQueueInStack:(WZPhotoStackView *)stackView;
    - (NSUInteger)numberOfRatingPhotosInStack:(WZPhotoStackView *)stackView;
    - (NSUInteger)numberOfSkipPhotosInStack:(WZPhotoStackView *)stackView;
    - (BOOL)canFetchMoreDataInStack:(WZPhotoStackView *)stackView;
    - (void)fetchMoreDataFromCoreDataInStack:(WZPhotoStackView *)stackView;
    - (void)fetchSkipPhotosInStack:(WZPhotoStackView *)stackView;

    @end

    @protocol WZPhotoStackViewDelegate <NSObject>
    @optional
    - (void)didSkipPhoto:(UIImage *)photo       inStackView:(WZPhotoStackView *)stackView;
    - (void)didBringBackPhoto:(UIImage *)photo  inStackView:(WZPhotoStackView *)stackView;
    - (void)didRatePhotoAsLike:(UIImage *)photo inStackView:(WZPhotoStackView *)stackView;
    - (void)didRatePhotoAsHate:(UIImage *)photo inStackView:(WZPhotoStackView *)stackView;
    - (void)didFinishRateAllPhotosInStackView:(WZPhotoStackView *)stackView;
    @end

只要在您的viewcontroller中添加如下代码即可

self.stackView = [[WZPhotoStackView alloc] initWithFrame:CGRectMake(0,
                                                                0,
                                                                CGRectGetWidth(self.view.frame),
                                                                CGRectGetHeight(self.view.frame))];

[self.view addSubview:self.stackView];

self.stackView.delegate = self;
self.stackView.dataSource = self;

效果


本文地址:https://codercto.com/soft/d/6897.html

美团机器学习实践

美团机器学习实践

美团算法团队 / 人民邮电出版社 / 2018-8-1 / 79.00元

人工智能技术正以一种超快的速度深刻地改变着我们的生活,引导了第四次工业革命。美团作为国内O2O领域领 先的服务平台,结合自身的业务场景和数据,积极进行了人工智能领域的应用探索。在美团的搜索、推荐、计算广告、风控、图像处理等领域,相关的人工智能技术得到广泛的应用。本书包括通用流程、数据挖掘、搜索和推荐、计算广告、深度学习以及算法工程6大部分内容,全面介绍了美团在多个重要方面对机器学习的应用。 ......一起来看看 《美团机器学习实践》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试