测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2017年8月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Suraj 维护。
标准 Tinder 应用滑动左滑动右视图的克隆
将 Source
目录中的 swift 文件复制
有两个主要类:`SPTinderView` 是一个从 `UIView` 继承的子类,它充当所有 卡片(即.Cells)的容器。卡片由 SPTinderViewCell
类表示,这个类也是 `UIView` 的子类。
它可以像使用 `UITableView` 一样使用,其中 `SPTinderView` 等同于 `UITableView`,`SPTinderViewCell` 等同于 `UITableViewCell`。
SPTinderView
添加到您的视图中,设置 代理
和 数据源
SPTinderViewCell
设置自定义单元格registerClass: forIdentifier:
或 registerNib: forIdentifier:
将此类或 nib 注册到 SPTinderView
数据源
和 代理
方法。此示例也可以在项目中找到。
SPTinderViewCell
class MyTinderCell: SPTinderViewCell {
let titleLabel: UILabel = UILabel(frame: CGRectZero)
let imageView: UIImageView = UIImageView(frame: CGRectZero)
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
required init(reuseIdentifier: String) {
super.init(reuseIdentifier: reuseIdentifier)
self.frame = CGRect(origin: CGPointZero, size: CGSize(width: 300, height: 400))
titleLabel.frame = CGRectMake(0, self.frame.height - 50, self.frame.width, 50)
imageView.frame = CGRectMake(0, 0, self.frame.width, self.frame.height - 50)
imageView.clipsToBounds = true
imageView.contentMode = .ScaleAspectFill
titleLabel.textAlignment = .Center
self.addSubview(imageView)
self.addSubview(titleLabel)
}
}
SPTinderView
并设置 dataSoruce
和 delegate
class ViewController: UIViewController {
@IBOutlet var tinderView: SPTinderView!
let cellIdentifier = "MyTinderCell"
override func viewDidLoad() {
super.viewDidLoad()
tinderView.frame = self.view.frame
tinderView.registerClass(MyTinderCell.self, forCellReuseIdentifier: cellIdentifier)
tinderView.dataSource = self
tinderView.delegate = self
tinderView.backgroundColor = UIColor.whiteColor()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
数据源
和 代理
方法extension ViewController: SPTinderViewDataSource, SPTinderViewDelegate {
func numberOfItemsInTinderView(view: SPTinderView) -> Int {
return 20
}
func tinderView(view: SPTinderView, cellAt index: Int) -> SPTinderViewCell? {
if let cell = tinderView.dequeueReusableCellWithIdentifier(cellIdentifier) as? MyTinderCell {
cell.titleLabel.text = "Model No: \(index+1)"
cell.imageView.image = TinderModel.randomImage()
return cell
}
return nil
}
func tinderView(view: SPTinderView, didMoveCellAt index: Int, towards direction: SPTinderViewCellMovement) {
print("\(direction)")
}
}
所有贡献都受欢迎!Fork、更改并发送拉取请求。