iOSEasyList
Android版本在此
是一个简化UITableView和UICollectionView数据源和单元格设置和配置的框架。它允许以类型安全地设置(UITableView,UICollectionView)DataSource和Delegate。DataSource还提供了开箱即用的diffing和动画删除、插入、移动和更改。
实现自己的列表所需的一切
- 易于使用的UITableView和UICollectionView
- 不再需要调用reloadData
- 可区分
- 可配置动画
- 分区
- 分页
- 可折叠
- 加载页脚
- 各种UICollectionView布局
- 空视图
- 可筛选
- 多种数据类型
要求
- Swift 4
- iOS 8+
安装
iOSEasyList通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod 'iOSEasyList'
使用说明
- 定义你的模型
struct Movie{
let id : String
let title : String
}
//optional: If you want to use Diffable capabilities (e.g. automatic animations like delete, insert, move , reload)
// inherit 'Diffable' ptotocol
extension Movie:Diffable{
var diffIdentifier: String {
return id
}
//optional: this function need for automatic reload
func isEqual(to object: Any) -> Bool {
guard let to = object as? Model else { return false }
return self.id==to.id &&
self.title==to.title
}
}
- 在 ViewController 中定义
TableViewAdapter
lazy var adapter: TableViewAdapter = { [unowned self] in
let adapter=TableViewAdapter(tableView: tableView) { (tv, ip, item) -> (UITableViewCell) in
let cell = tv.dequeueReusableCell(withIdentifier: MovieCell.reuseIdentifier, for: ip) as! MovieCell
cell.data = item as? Movie
return cell
}
//optional
adapter.animationConfig = AnimationConfig(reload: .fade, insert: .top, delete: .bottom)
return adapter
}()
- 设置数据
override func viewDidLoad() {
super.viewDidLoad()
adapter.setData(newData: items, animated: true)
}
- 这就是全部,更多示例请参阅示例项目
示例
要运行示例项目,请首先克隆库,然后从 Example 目录运行 pod install
感谢
作者
Mostafa Taghipour, [email protected]
许可
iOSEasyList 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。