SwiftUI 简单时间线视图开发教程

SwiftUI 简单时间线视图开发教程

本教程详细介绍了如何实现一个 时间线视图,并逐步分析代码的设计思路。我们会特别分析时间线中连接线的实现,探讨其连续性如何保持以及偏移量计算的原因。

简单时间线视图


1. 整体视图结构

TimeLineView 是整个时间线组件的入口,包含以下几个主要部分:

  • TimeLineView:主视图,包含时间线的滚动视图。
  • GeneraTimeLineView:时间线的核心视图,负责展示所有条目。
  • timeLineSubView:时间线的单条子视图,包含左侧圆点、右侧时间和详细信息。
  • GeneraTimeLineViewItemModel:用于描述每个时间线条目的数据模型。

代码预览

struct TimeLineView: View {
   
    @State private var values: [GeneraTimeLineViewItemModel] = [] // 时间线条目数据

    var body: some View {
   
        ScrollView(.vertical, showsIndicators: false) {
    // 垂直滚动视图
            getTimeLineView()
                .padding()
        }
        .navigationTitle("时间线")
        .onAppear {
   
            getValues() // 初始化数据
        }
    }
}

功能分析

  1. 数据初始化
    onAppear 生命周期方法中调用 getValues(),动态加载时间线条目数据。

  2. 滚动视图
    使用 ScrollView 创建垂直滚动视图,保证条目数量较多时用户可以上下滑动查看。

  3. 时间线核心视图调用
    getTimeLineView() 方法返回时间线核心视图。


2. 数据模型

每个时间线条目都由 GeneraTimeLineViewItemModel 描述:

class GeneraTimeLineViewItemModel: Identifiable, Equatable {
   
    static func == (lhs: GeneraTimeLineViewItemModel, rhs: GeneraTimeLineViewItemModel) -> Bool {
   
        lhs.id == rhs.id
    }

    let id = UUID() // 唯一标识
    var lTitle: String // 左侧标题
    var rTitle
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

函数的彼端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值