I cannot return DragGesture from computed property like below
'_EndedGesture<_ChangedGesture<DragGesture>>' to return type 'DragGesture'
var dimDrag : DragGesture {
DragGesture()
.onChanged({
print("Dim drag")
if $0.translation.width > 0 {
self.model.menuOffset = max(min($0.translation.width, UIScreen.main.bounds.width*0.7), 0.0)
} else {
self.model.menuOffset = max(min(UIScreen.main.bounds.width*0.7 + $0.translation.width, UIScreen.main.bounds.width*0.7), 0.0)
}
})
.onEnded({
if $0.translation.width < -100 {
withAnimation {
self.model.isMenuOpen = true
self.model.menuOffset = 0.0
}
} else if $0.translation.width > 100 {
withAnimation {
self.model.isMenuOpen = false
self.model.menuOffset = UIScreen.main.bounds.width*0.7
}
}
})
}
As it is returning _EndedGesture<_ChangedGesture<DragGesture>>
and not DragGesture
, one can declare the computed property like this :
var dimDrag: some Gesture {
DragGesture()
.onChanged({
if $0.translation.width > 0 {
self.model.menuOffset = max(min($0.translation.width, UIScreen.main.bounds.width*0.7), 0.0)
} else {
self.model.menuOffset = max(min(UIScreen.main.bounds.width*0.7 + $0.translation.width, UIScreen.main.bounds.width*0.7), 0.0)
}
})
.onEnded({
if $0.translation.width < -100 {
withAnimation {
self.model.isMenuOpen = true
self.model.menuOffset = 0.0
}
} else if $0.translation.width > 100 {
withAnimation {
self.model.isMenuOpen = false
self.model.menuOffset = UIScreen.main.bounds.width*0.7
}
}
})
}
One can make this variable as part of private extension.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With