YCCardView
简介
效果图如下
该框架实现了类似探探左滑右滑、陌陌的点对点匹配功能。功能齐全,可以完成商业级项目。
喜欢的朋友希望给个Star支持一下,谢谢!!!
描述
- 1、该框架采用UITableView的设计思想,内部使用四张卡片实现卡片的复用效果。通过更新卡片的代理回调来显示对位置的数据。具体可参考demo示例。
- 2、建议使用者新建一个Cell继承YCCardCell使用,YCCardCell 只是一个基类,监听了卡片滑动的距离等操作,方便自定义cell处理相关业务:比如向左滑动显示不喜欢图标,向右滑动显示喜欢图标等。
- 3、统一术语
- 向左滑动也叫:不喜欢
- 向右滑动也叫:喜欢
- 回退也叫: 撤销
功能
- 1、不喜欢操作 向左拖拽卡片,卡片向左移出。
- 2、喜欢操作 向右拖拽卡片,卡片向左移出。
- 3、撤销操作
- 只会回退向左移出的卡片,如果没有向左移出的卡片,则无法回退。
- 陌陌内VIP一次只能撤销上一个不喜欢的卡片,撤销完成后,必须等待下次出现不喜欢的卡片才能再次撤销。属于单次只能撤销一个卡片,本框架支持多张卡片撤销,同时也支持陌陌的单次撤销,具体可参考demo。
- 4、加载数据更多功能
- 根据用户设置的阈值(默认为5)来触发加载数据的回调。
- 5、检测外界是否允许拖拽
- 喜欢、不喜欢拖拽结束后,检测外界是否允许拖拽:不允许,则恢复原位。针对一些业务场景,例如:用户喜欢的次数用完了,再次触发喜欢操作时,则需要弹出购买VIP的对话框。
- 6、无数据回调
- 7、卡片点击事件
代码示例
1、代理方法
#pragma mark - 代理方法
#pragma mark - YCCardViewDelegate
/**
* 更新显示的卡片cell
* @param cardView 卡片容器视图
* @param cardDragCell 卡片容器视图对应的每个item
* @param intIndex 对应的每个item的索引
*/
- (void)yc_cardDragView:(YCCardView *)cardView updateDisplayCell:(YCCardCell *)cardCell cellForRowAtIndex:(NSInteger)indexRow {
if (indexRow >= self.mArrayData.count) {
return;
}
[cardCell yc_setObject:self.mArrayData[indexRow]];
}
/**
* 点击卡片cell事件
* @param cardView 卡片拖拽视图
* @param aUIntIndex 卡片所对应的位置
*/
- (void)yc_cardView:(YCCardView *)cardView didSelectedIndex:(NSUInteger)indexRow {
NSLog(@"Ryc_______ 点击cellIndex:%@",@(indexRow));
}
/**
卡片是否可以移动,拖拽的时候,可以进行一些条件控制,比如喜欢次数用完了,需要用户充值vip等
* @param cardView 卡片拖拽视图
* @param isRightDirection 是否为右边
*/
- (BOOL)yc_cardDragView:(YCCardView *)cardView cheackCardHasCanDragWithDragingDirection:(BOOL )isRightDirection {
return YES;
}
#pragma mark - YCCardViewDataSource
- (NSInteger)yc_numberOfRowsInCardDragView:(YCCardView *)cardView {
return self.mArrayData.count;
}
- (UIEdgeInsets)yc_edgeInsetsInCardDragView:(YCCardView *)cardView {
return UIEdgeInsetsMake(60,10, 60, 10);
}
- (YCCardCell *)yc_creatCellForCardView:(YCCardView *)cardView {
YCCardCell *cell = [[YCCardCell alloc] init];
cell.backgroundColor = [self p_randomColor];
return cell;
}
/**
加载更多数据
*/
- (void)yc_loadDataMore {
[self loadMoreData];
}
注意点
demo示例仅列举了该框架功能的用法,具体上层业务控制需结合实际情况进行设置。例如:卡片拖拽时,操作按钮视图关闭交互,拖拽结束后再打开等。
安装方式
YCCardView 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile:
pod 'YCCardView'
Authorzuozhe
Rycccccccc
, [email protected]
许可
YCCardView 可在 MIT 许可下使用。更多信息请参阅 LICENSE 文件。