A view that uses the Move, Exercise, and Stand activity rings to display data from a HealthKit activity summary object.


class HKActivityRingView : UIView


Use HKActivityRingView to display data from an HKActivitySummary object. For example, Figure 1 shows how the rings can display a summary view of the user's activity.

Figure 1

An activity ring view

The activity ring view always appears as a black rectangle with red, green, and blue concentric rings. The rings are centered in the view and are sized to fit the available space (see Figure 2).

Figure 2

The rings fitted to the available space

The rings have two different ways to display a lack of data. One indicates that the activity summary is missing, and the other indicates that the activity summary’s values are set to zero. If the ring has a nil-valued activitySummary property, the rings appear empty. Use this to indicate that there is no summary data available for the specified day (for example, dates in the future).

Figure 3

The rings when no activity summary is available

If the summary has zero-valued quantities set for its value properties, the ring displays a dot at the top of the ring. Use this to indicate that the user has not yet burned any active calories, exercised, or earned any stand hours for the specified day.

Figure 4

The rings when the activity values are all set to zero

To display activity summary data from the HealthKit store, use an HKActivitySummaryQuery object. You can also instantiate and display your own HKActivitySummary objects, as needed.

To display data for a ring, the HKActivitySummary object must have a non-nil quantity for both the corresponding value property and the goal property (see Table 1).

Table 1

Properties affecting rings

The activity ring view colors a percentage of each ring based on these properties, as shown here:

ring percent = value property quantity / goal property quantity


Setting the Activity Summary

var activitySummary: HKActivitySummary?

The active summary displayed by the activity ring view.

func setActivitySummary(HKActivitySummary?, animated: Bool)

Sets the activity summary displayed by the activity ring view.

See Also

Activity Rings

class HKActivitySummary

An object that contains the move, exercise, and stand data for a given day.

class HKActivitySummaryQuery

A query for reading activity summary objects from the HealthKit store.