edit
This commit is contained in:
parent
f3653c5617
commit
e4b3a33ebc
@ -418,13 +418,28 @@ struct AvatarViewerView: View {
|
|||||||
scale > 1.05 ? panOffset : dismissOffset
|
scale > 1.05 ? panOffset : dismissOffset
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var dragProgress: CGFloat {
|
||||||
|
guard scale <= 1.05 else { return 0 }
|
||||||
|
let progress = min(1, abs(dismissOffset.height) / 220)
|
||||||
|
return progress
|
||||||
|
}
|
||||||
|
|
||||||
|
private var backgroundOpacity: Double {
|
||||||
|
Double(1 - dragProgress * 0.6)
|
||||||
|
}
|
||||||
|
|
||||||
|
private var overlayOpacity: Double {
|
||||||
|
Double(1 - dragProgress * 0.8)
|
||||||
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
ZStack {
|
ZStack {
|
||||||
Color.black.ignoresSafeArea()
|
Color.black.opacity(backgroundOpacity).ignoresSafeArea()
|
||||||
|
|
||||||
zoomableContent
|
zoomableContent
|
||||||
|
|
||||||
topOverlay
|
topOverlay
|
||||||
|
.opacity(overlayOpacity)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -512,7 +527,8 @@ struct AvatarViewerView: View {
|
|||||||
height: storedPanOffset.height + value.translation.height
|
height: storedPanOffset.height + value.translation.height
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
dismissOffset = value.translation
|
let limitedWidth = min(max(value.translation.width, -80), 80)
|
||||||
|
dismissOffset = CGSize(width: limitedWidth, height: value.translation.height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onEnded { value in
|
.onEnded { value in
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user