     public var isAffineTransform: Bool = true
     public var zanPosition: CGPoint?
     public var zanLineColor = UIColor.black
-    public var zanLineWidth: CGFloat = 1.0
+    public var zanLineWidth: CGFloat = 0.3
     
     fileprivate weak var transitionContext: UIViewControllerContextTransitioning!
     fileprivate var containerView: UIView!

            coverView.frame = containerFrame
            containerView.insertSubview(coverView, belowSubview: toView)
            
            zanLine.backgroundColor = zanLineColor
            containerView.addSubview(zanLine)
            
            UIView.animate(withDuration: zanLineDuration, animations: {
                zanLine.frame.size = zanEndPoint
            }, completion: { _ in
                
                zanLine.removeFromSuperview()
                
                UIView.animate(withDuration: self.duration - self.zanLineDuration, animations: {
                    oneSideView.frame = oneSideOffsetFrame
                    otherSideView.frame = otherSideOffsetFrame
                    self.toView.alpha = 1.0
                    self.toView.transform = CGAffineTransform.identity
                }, completion: { _ in
                    oneSideView.removeFromSuperview()
                    otherSideView.removeFromSuperview()
                    transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
                })
                
            })
            

        otherSidePath.addLine(to: CGPoint(x: containerFrame.minX, y: containerFrame.minY))
        otherSidePath.close()
        
        return otherSidePath
    }
    
}

extension SamuraiTransition: CAAnimationDelegate {
    
    public func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
        if let layer = anim.value(forKey: "LineLayer") as? CAShapeLayer {
            layer.removeFromSuperlayer()
        }
    }
    
}

