                 contentEndFrame = self.contentFullscreenFrame
                 detailBeginFrame = self.detailShowedFrame
                 detailEndFrame = self.detailFullscreenFrame
+                deviation = 0
                 self.targetState = .fullscreen
             } else if positionDelta > 0 {
                 contentBeginFrame = self.contentShowedFrame
                 contentEndFrame = self.contentClosedFrame
                 detailBeginFrame = self.detailShowedFrame
                 detailEndFrame = self.detailClosedFrame
+                deviation = 0
                 self.targetState = .closed
             } else {
                 contentBeginFrame = self.contentShowedFrame
                 contentEndFrame = self.contentShowedFrame
                 detailBeginFrame = self.detailShowedFrame
                 detailEndFrame = self.detailShowedFrame
+                deviation = 0
                 self.targetState = .showed
             }
         case .closed:

            contentEndFrame = self.contentClosedFrame
            detailBeginFrame = self.detailClosedFrame
            detailEndFrame = self.detailClosedFrame
            self.targetState = .closed
        }
        if contentBeginFrame != contentEndFrame || detailBeginFrame != detailEndFrame {
            let detailDelta = detailBeginFrame.topPoint.distance(to: detailEndFrame.topPoint)
            self.deltaPosition = self.ease.lerp(positionDelta, from: 0, to: detailDelta)
            let progress = max(0, min(self.deltaPosition / detailDelta, 1))
            self.contentViewController?.view.frame = contentBeginFrame.lerp(contentEndFrame, progress: progress)
            self.detailViewController?.view.frame = detailBeginFrame.lerp(detailEndFrame, progress: progress)
            self.canFinish = self.deltaPosition > (detailDelta * self.finishDistanceRate)
        }
    }
    

                contentEndFrame = self.contentFullscreenFrame
                detailBeginFrame = self.detailFullscreenFrame
                detailEndFrame = self.detailFullscreenFrame
                deviation = 0
                self.targetState = .fullscreen
            } else if positionDelta > self.detailShowedSize {
                contentBeginFrame = self.contentShowedFrame
                contentEndFrame = self.contentClosedFrame
                detailBeginFrame = self.detailShowedFrame
                detailEndFrame = self.detailClosedFrame
                deviation = self.detailShowedSize
                self.targetState = .closed
            } else if positionDelta > 0 {
                contentBeginFrame = self.contentFullscreenFrame
                contentEndFrame = self.contentShowedFrame
                detailBeginFrame = self.detailFullscreenFrame
                detailEndFrame = self.detailShowedFrame
                deviation = 0
                self.targetState = .showed
            } else {
                contentBeginFrame = self.contentFullscreenFrame
                contentEndFrame = self.contentFullscreenFrame
                detailBeginFrame = self.detailFullscreenFrame
                detailEndFrame = self.detailFullscreenFrame
                deviation = 0
                self.targetState = .fullscreen
            }
        case .showed:
