Structure

TimelineView

A view that updates according to a schedule that you provide.

Declaration 宣言

struct TimelineView<Schedule, Content> where Schedule : TimelineSchedule

Overview 概要

A timeline view acts as a container with no appearance of its own. Instead, it redraws the content it contains at scheduled points in time. For example, you can update the face of an analog timer once per second:


TimelineView(.periodic(from: startDate, by: 1)) { context in
    AnalogTimerView(date: context.date)
}

The closure that creates the content receives an input of type TimelineView.Context that you can use to customize the content’s appearance. The context includes the date that triggered the update. In the example above, the timeline view sends that date to an analog timer that you create so the timer view knows how to draw the hands on its face.

The context also includes a cadence property that you can use to hide unnecessary detail. For example, you can use the cadence to decide when it’s appropriate to display the timer’s second hand:


TimelineView(.periodic(from: startDate, by: 1.0)) { context in
    AnalogTimerView(
        date: context.date,
        showSeconds: context.cadence <= .seconds)
}

The system might use a cadence that’s slower than the schedule’s update rate. For example, a view on watchOS might remain visible when the user lowers their wrist, but update less frequently, and thus require less detail.

You can define a custom schedule by creating a type that conforms to the TimelineSchedule protocol, or use one of the built-in schedule types:

  • Use an everyMinute schedule to update at the beginning of each minute.

  • Use a periodic(from:by:) schedule to update periodically with a custom start time and interval between updates.

  • Use an explicit(_:) schedule when you need a finite number, or irregular set of updates.

For a schedule containing only dates in the past, the timeline view shows the last date in the schedule. For a schedule containing only dates in the future, the timeline draws its content using the current date until the first scheduled date arrives.

Topics 話題

Creating a Timeline

Default Implementations 省略時実装

Relationships 関係

Conforms To 次に準拠

  • View
    Conforms when Schedule conforms to TimelineSchedule and Content conforms to View.

See Also 参照

Timelines