大家想象一下,自己当捧着一堆照片的时候,我们是如何去放置我们的照片的? 可能我们会挑选出我们喜欢的照片放到相册中珍藏,也有可能我们把不喜欢的扔掉。 同时我们还会存在犹豫不觉的情况,觉得,哎,我先放到后面去,一会再看吧。 当然,也有可能,您会考虑,哎,我之前一张是什么图来着,我忘记了,我拿回来看看。
WZRecyclePhotoStackView 就是模拟这种生活中的情形而产生的。 在上滑,下滑的部分,借鉴了TinderSimpleSwipeCards
采用了内存池的设计方式,对于非图片开销,只生成了两个(可配置个数)的容器循环复用
避免了一次性加载数据的内存开销和时间损耗,通过可配置的方式将大量的数据通过多次小部分添加加载进内存中。 同时通过预取的方式将这些新的数据自动补充进需要显示的位置。(在预取过程中您完全可以按照需要修改为异步回调形式)
支持左滑、右滑操作。右滑跳过当前照片,将照片置为底部,最后查看。左滑将底部照片拉回顶部,设置为当前查看。
高度定制化
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;
目标 获取像素的值并更改它们 获取图像属性 设置感兴趣的区域(Region of Interest,ROI) 分割和合并图像 几乎所有这些操作都和 Numpy 相关而和 OpenCV 没什么关系。精通 Numpy 对于写高度优化的 OpenCV 代码是必要的。 (例子将使用 Python 控制台,因为它们中大多数程序都只是一行代码) 获取和更改像素的值 让我们先读取一个彩色图片: >>> impo
本文向大家介绍PHP图片处理之图片背景、画布操作,包括了PHP图片处理之图片背景、画布操作的使用技巧和注意事项,需要的朋友参考一下 像验证码或根据动态数据生成统计图标,以及前面介绍的一些GD库操作等都属于动态绘制图像。而在web开发中,也会经常去处理服务器中已存在的图片。例如,根据一些需求对图片进行缩放、加水印、裁剪、翻转和旋转等改图的操作。在web应用中,经常使用的图片格式有GIF、JPEG和P
我试图在另一个片段中显示一个谷歌地图片段,但是我不能操纵地图,我已经把我看到的所有步骤都留档了,但是我不能操纵我的地图。 XML代码: 类片段代码: 主要活动类别代码: } 在调用getMapAsync()后,编辑以下堆栈跟踪: 空指针错误: 12-18 19:51:50.056 11265-11265/ar.com.taxiexpress.taxiexpressE/AndroidRuntime:
本文向大家介绍python3操作微信itchat实现发送图片,包括了python3操作微信itchat实现发送图片的使用技巧和注意事项,需要的朋友参考一下 两个代码,一个是把python当微信操作,可以查看自己的好友信息,群信息等。还可以定时发送文本,文件等。效果就和你本人操作一样,没差别。 还有一个是连接你的微信和图灵机器人,别人和你说话可以自动回复(非常愚蠢)。 itchat.search_f
本文向大家介绍Android利用Intent实现读取图片操作,包括了Android利用Intent实现读取图片操作的使用技巧和注意事项,需要的朋友参考一下 本文实例演示如何从图库(Gallery)中读取图像并用ImageView将它显示出来,供大家参考,具体内容如下 运行本示例前,需要先利用相机模拟拍摄一些图片到图库中。 1、运行截图 2、主要设计步骤 (1)添加ch1203_ReadGal
本文向大家介绍Java实现用Mysql存取图片操作实例,包括了Java实现用Mysql存取图片操作实例的使用技巧和注意事项,需要的朋友参考一下 1.MySQL中的BLOB类型 Mysql中可以存储大文件数据,一般使用的BLOB对象。如图片,视频等等。 BLOB是一个二进制大对象,可以容纳可变数量的数据。因为是二进制对象,所以与编码方式无关。有4种BLOB类型:TINYBLOB、BLOB、M
本文向大家介绍Android利用LitePal操作数据库存取图片,包括了Android利用LitePal操作数据库存取图片的使用技巧和注意事项,需要的朋友参考一下 Android数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制的形式存储(sqlite3支持BLOB数据类型)。对于两种方法的使用,好像第二种方法不如第一种方法更受程序员欢迎,他们认为,在很多数据库语言里,处
本文向大家介绍关于vue的列表图片选中打钩操作,包括了关于vue的列表图片选中打钩操作的使用技巧和注意事项,需要的朋友参考一下 首先 css,美化checkbox样式,这一段代码拿过去可以直接用 接着是内容部分,这里变量命名比较乱,但是效果都是通过变量控制的,主要思路是点击后,将一个id传入一个临时数组,再遍历这个临时数组,拿数组中的值与当前值对比,如果对比成功,那么就让选中的checkbox显示