edit
This commit is contained in:
parent
f3653c5617
commit
e4b3a33ebc
@ -418,13 +418,28 @@ struct AvatarViewerView: View {
|
||||
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 {
|
||||
ZStack {
|
||||
Color.black.ignoresSafeArea()
|
||||
Color.black.opacity(backgroundOpacity).ignoresSafeArea()
|
||||
|
||||
zoomableContent
|
||||
|
||||
topOverlay
|
||||
.opacity(overlayOpacity)
|
||||
}
|
||||
}
|
||||
|
||||
@ -512,7 +527,8 @@ struct AvatarViewerView: View {
|
||||
height: storedPanOffset.height + value.translation.height
|
||||
)
|
||||
} else {
|
||||
dismissOffset = value.translation
|
||||
let limitedWidth = min(max(value.translation.width, -80), 80)
|
||||
dismissOffset = CGSize(width: limitedWidth, height: value.translation.height)
|
||||
}
|
||||
}
|
||||
.onEnded { value in
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user