@@ -51,6 +51,7 @@ class HeightConstraintOverlayTranslationController: OverlayTranslationController
51
51
private var deferredTranslation : TranslationMetaData ?
52
52
private var deferredTranslationCompletionBlocks : [ TranslationCompletionBlock ] = [ ]
53
53
54
+ private var translationStartHeight : CGFloat = 0.0
54
55
private var translationEndNotchHeight : CGFloat {
55
56
return configuration. heightForNotch ( at: translationEndNotchIndex)
56
57
}
@@ -103,6 +104,7 @@ class HeightConstraintOverlayTranslationController: OverlayTranslationController
103
104
let velocity = deferredTranslation. velocity
104
105
let isAnimated = deferredTranslation. isAnimated
105
106
translationEndNotchIndex = targetIndex
107
+ let targetHeight = configuration. heightForNotch ( at: translationEndNotchIndex)
106
108
if isAnimated {
107
109
let height = translationHeight
108
110
let context = ConcreteOverlayContainerContextTransitioning (
@@ -113,7 +115,7 @@ class HeightConstraintOverlayTranslationController: OverlayTranslationController
113
115
overlayTranslationHeight: height,
114
116
velocity: velocity,
115
117
targetNotchIndex: translationEndNotchIndex,
116
- targetTranslationHeight: translationEndNotchHeight ,
118
+ targetTranslationHeight: targetHeight ,
117
119
notchHeightByIndex: configuration. notchHeightByIndex,
118
120
reachableIndexes: enabledNotchIndexes ( )
119
121
)
@@ -134,11 +136,11 @@ class HeightConstraintOverlayTranslationController: OverlayTranslationController
134
136
completions. forEach { $0 ( ) }
135
137
} )
136
138
delegate? . translationController ( self , willTranslateOverlayWith: coordinator)
137
- updateConstraint ( toHeight: translationEndNotchHeight )
139
+ updateConstraint ( toHeight: targetHeight )
138
140
animator. startAnimation ( )
139
141
lastScheduledTranslationAnimator = animator
140
142
} else {
141
- translateOverlayWithoutAnimation ( toHeight: translationEndNotchHeight , isDragging: false )
143
+ translateOverlayWithoutAnimation ( toHeight: targetHeight , isDragging: false )
142
144
completions. forEach { $0 ( ) }
143
145
delegate? . translationController ( self , didMoveOverlayToNotchAt: targetIndex)
144
146
}
@@ -200,13 +202,14 @@ class HeightConstraintOverlayTranslationController: OverlayTranslationController
200
202
201
203
func startOverlayTranslation( ) {
202
204
isDragging = false
205
+ translationStartHeight = translationHeight
203
206
}
204
207
205
208
func dragOverlay( withOffset offset: CGFloat , usesFunction: Bool ) {
206
209
guard let viewController = overlayViewController else { return }
207
210
let maximumHeight = maximumReachableNotchHeight ( )
208
211
let minimumHeight = minimumReachableNotchHeight ( )
209
- let translation = translationEndNotchHeight - offset
212
+ let translation = translationStartHeight - offset
210
213
let height : CGFloat
211
214
if usesFunction {
212
215
let parameters = ConcreteOverlayTranslationParameters (
0 commit comments