SwiftUI实战之 List实现分页与组件复用效果Generics

目标

  • 实现针对不同数据结构的自动分页
  • 能够自定义界面效果

实现路径

需要用到Swift语言的高级特性Generics(范型)。Generics可以让我们的项目变得灵活,避免重复编写相同的代码,并以清晰抽象的方式提供代码表达力。

遇到问题

    1. 如何通过参数给范型初始化
    U.init(item: item.getShowDict())

U是一个范型,通过协议实现了init,通过where明确了U是个View

    1. 协议如何用范型
protocol PageModelProtocal:Identifiable{
    associatedtype T
    static func row_page() ->[T]
    // 获取下一页
    var id:UUID { get set }
    var name:String { get set }
    func next() ->[T]
    func getShowDict() ->[String:Any]
}

可以用associatedtype来解决

代码实现

让主页面代码变得简洁

还有 85% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1.59 继续阅读

推荐阅读更多精彩内容