Update: My assumption was wrong. Corrected here.
I haven’t seen this mentioned anywhere,
but the onPreferenceChange(_:perform:)
view instance method now requires the preference key value type to conform to Equatabale
as of Beta 5.
In practice, this means that oPreferenceChange
can no longer be used with preference keys that have an Anchor<Value>
as their value type or a as a property of their value type,
since Anchor
itself doesn’t conform to Equatable
.
I fixed this by passing the GeometryProxy
instance to a custom view modifier that unpacks the anchor first using the provided proxy,
then passes the result as a CGFloat
instead.
For more on preference keys and anchors check out this informative blog post series.