它是一个 UIViewController,允许你对内容进行投票、留下意见或了解观点。对于每个内容,用户必须做出选择,有两种可能,或必要时查看更多信息(不喜欢/喜欢或拒绝/接受)。每个内容都由一个 KinderCarView 表示。用户可以选择手势或按钮。Kinder类似于Tinder系统。
将Kinder堆叠在内容上,仅显示其中三个。Kinder使用 代理 来通知操作或寻找更多内容。您可以将内容逐步添加(懒加载)。
您的父类控制器必须实现此协议以执行操作。例如,为喜欢或不喜欢调用网络服务,并加载更多内容。
protocol KinderDelegate {
func acceptCard(card: KinderModelCard?)
func cancelCard(card: KinderModelCard?) // action signal
func signalReload() // signal to load more data
func reloadCard() -> [KinderModelCard]? //return your datas to the Kinder controller
}
Kinder处理模型。如果您因为使用API或其他原因而有特殊的模型,则可以从 KinderModelCard 继承。这个模型很重要,因为您将通过Kinder传递的所有内容都必须是 KinderModelCard。
protocol KinderModelCard {
var image: UIImage! { get set }
var content: String! { get set }
var desc: String! { get set }
}
class CustomModel: NSObject, KinderModelCard {
var image: UIImage!
var content: String!
var desc: String!
var id: String!
var isVoted: Bool!
}
参照示例项目。如果您有任何问题,请不要犹豫。并且不要犹豫做出贡献,构建比现有更令人印象深刻的东西。