<!--
{
  "availability" : [
    "watchOS: 6.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/View/digitalCrownRotation(_:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI4ViewPAAE20digitalCrownRotation_4from7through2by11sensitivity12isContinuous0K21HapticFeedbackEnabledQrAA7BindingVyqd__G_qd__qd__6StrideQyd__SgAA07DigitalE21RotationalSensitivityOS2btSBRd__SBAORQlF"
  },
  "title" : "digitalCrownRotation(_:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:)"
}
-->

# digitalCrownRotation(_:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:)

Tracks Digital Crown rotations by updating the specified binding.

```
nonisolated func digitalCrownRotation<V>(_ binding: Binding<V>, from minValue: V, through maxValue: V, by stride: V.Stride? = nil, sensitivity: DigitalCrownRotationalSensitivity = .high, isContinuous: Bool = false, isHapticFeedbackEnabled: Bool = true) -> some View where V : BinaryFloatingPoint, V.Stride : BinaryFloatingPoint
```

## Parameters

`binding`

A binding to a value that updates when the user rotates
the  Digital Crown.

`minValue`

Lower end of the range reported.

`maxValue`

Upper end of the range reported.

`stride`

The value settles on multiples of `stride`.

`sensitivity`

How much the user needs to rotate the  Digital Crown
to move between two integer numbers.

`isContinuous`

Controls if the value reported stops at `minValue`
and `maxValue`, or if it should wrap around. Default is `false`.

`isHapticFeedbackEnabled`

Controls the generation of haptic feedback
when turning the Digital Crown. Default is `true`.

## Discussion

Use this method to receive values on a binding you provides as the
user turns the Digital Crown on Apple Watch. The example below receives
changes to the binding value, starting at the `minValue` of  `0.0`  up
to the `maxValue` of `10.0` in steps of `0.1` incrementing or
decrementing depending on the direction that the user turns the Digital
Crown, rolling over if the user exceeds the specified boundary values:

```
struct DigitalCrown: View {
    @State private var crownValue = 0.0
    @State private var minValue = 0.0
    @State private var maxValue = 10.0
    @State private var stepAmount = 0.1

    var body: some View {
        Text("Received Value:\(crownValue, specifier: "%.2f")")
            .focusable()
            .digitalCrownRotation($crownValue,
                                  from: minValue,
                                  through: maxValue,
                                  by: stepAmount,
                                  sensitivity: .low,
                                  isContinuous: true)
    }
}
```

![A screenshot showing a value received by turning the Digital Crown](images/com.apple.SwiftUI/SwiftUI-View-digitalCrownRotationBindingFull@2x.png)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)