YHDragContainer
高度还原类似探探等社交应用的滑牌效果。(OC+Swift)
为什么编写这个库?
由于项目需求,我经常需要使用滑牌效果。最初,我也在网上搜索了各种三方库,确实找到了一些,但都不是很满意。有的功能缺失,有的滑牌效果不佳,还有的bug需要修改源代码。这样多次修改后,我决定自己编写一个库,因此诞生了这个库。
与其他三方库对比
我参考了一些其他开源库,从中获得了许多灵感,在此表示感谢
CCDraggableCard
QiCardView
但是我觉得这些开源库存在一些不足之处
CCDraggableCard
:仅对卡片的宽度做了缩放,没有对高度做缩放。此外,它还可以滑动和点击没有放置在最顶部的卡片,而且它没有提供当前滑动索引的方法,其属性在框架内部写死了,不能灵活配置。在使用时,由于上述原因,我只能修改大量源代码。
QiCardView
:没有提供卡片的点击事件,并且在滑动过程中没有对下层卡片进行处理。基于上述原因,我决定自己编写一个具有良好扩展性和可灵活配置各种属性的滑牌库。
与其他同类三方库相比的优点:
- 可以无限滑动
- 可以实现上下左右滑动
- 滑牌属性可自由定制
- 通过数据源的方式控制滑牌,内存占用低
- 代理丰富,可以根据需要选择合适的代理
即将加入的功能
- 暂无
效果预览
安装
手动
- OC
Clone代码,将OC Demo中的《Sources》文件夹拖入项目中,使用 #import "YHDragCardContainer.h",即可使用 - Swift
Clone代码,将Swift Demo中的《Sources》文件夹拖入项目中即可使用
CocoaPods
- OC
pod 'YHDragContainer'
- Swift
pod 'YHDragCard.swift'
如果提示未找到,先执行pod repo update
,再执行pod install
使用
👉 OC(具体用法请参考Demo和框架中的注释,描述非常详细)
YHDragCardContainer *card = [[YHDragCardContainer alloc] initWithFrame:CGRectMake(50, [UIApplication sharedApplication].statusBarFrame.size.height+44+40, self.view.frame.size.width - 100, 400)];
card.delegate = self;
card.dataSource = self;
card.minScale = 0.9;
card.removeDirection = YHDragCardRemoveDirectionHorizontal;
[self.view addSubview:card];
👉 Swift(具体用法请参考Demo和框架中的注释,描述非常详细)
let card = YHDragCard(frame: CGRect(x: 50, y: UIApplication.shared.statusBarFrame.size.height + 44.0 + 40.0, width: self.view.frame.size.width - 100 , height: 400))
card.dataSource = self
card.delegate = self
card.minScale = 0.9
card.removeDirection = .horizontal
self.view.addSubview(card)
更新记录(倒叙)
- 解决了在push下一个界面之后,卡片重新加载的bug
- 移除
didMoveToSuperview
方法,由开发者自行选择合适的时机reload
- OC版本重构,优化代码
- 增加Swift版本
2、OC 0.5.0版本(2019.6.20)
- 增加禁用拖动手势的功能
1、OC 0.4.0版本(2019.6.13)
- 增加撤销功能
- 增加上滑动和下滑动的回调
补充
该仓库会不断优化,在使用过程中,有任何建议或问题,欢迎提issue,或者通过邮箱[email protected]联系我
喜欢就点star