Refactor.

This commit is contained in:
jonkykong
2018-05-23 18:02:33 -07:00
parent 1df40fa25c
commit 4b8f65812f
+20 -22
View File
@@ -223,18 +223,20 @@ open class SideMenuTransition: UIPercentDrivenInteractiveTransition {
}
@discardableResult internal func hideMenuStart() -> SideMenuTransition {
let menuView = menuViewController?.view
let mainView = mainViewController?.view
guard let menuView = menuViewController?.view,
let mainView = mainViewController?.view else {
return self
}
mainView?.transform = .identity
mainView?.alpha = 1
mainView?.frame.origin = .zero
menuView?.transform = .identity
menuView?.frame.origin.y = 0
menuView?.frame.size.width = menuWidth
menuView?.frame.size.height = mainView?.frame.height ?? 0 // in case status bar height changed
mainView.transform = .identity
mainView.alpha = 1
mainView.frame.origin = .zero
menuView.transform = .identity
menuView.frame.origin.y = 0
menuView.frame.size.width = menuWidth
menuView.frame.size.height = mainView.frame.height // in case status bar height changed
var statusBarFrame = UIApplication.shared.statusBarFrame
let statusBarOffset = SideMenuManager.appScreenRect.size.height - (mainView?.frame.maxY ?? 0)
let statusBarOffset = SideMenuManager.appScreenRect.size.height - mainView.frame.maxY
// For in-call status bar, height is normally 40, which overlaps view. Instead, calculate height difference
// of view and set height to fill in remaining space.
if statusBarOffset >= CGFloat.ulpOfOne {
@@ -246,21 +248,17 @@ open class SideMenuTransition: UIPercentDrivenInteractiveTransition {
switch sideMenuManager.menuPresentMode {
case .viewSlideOut:
menuView?.alpha = 1 - sideMenuManager.menuAnimationFadeStrength
menuView?.frame.origin.x = presentDirection == .left ? 0 : (mainView?.frame.width ?? 0) - menuWidth
menuView?.transform = CGAffineTransform(scaleX: sideMenuManager.menuAnimationTransformScaleFactor, y: sideMenuManager.menuAnimationTransformScaleFactor)
menuView.alpha = 1 - sideMenuManager.menuAnimationFadeStrength
menuView.frame.origin.x = presentDirection == .left ? 0 : mainView.frame.width - menuWidth
menuView.transform = CGAffineTransform(scaleX: sideMenuManager.menuAnimationTransformScaleFactor, y: sideMenuManager.menuAnimationTransformScaleFactor)
case .viewSlideInOut:
menuView?.alpha = 1
menuView?.frame.origin.x = presentDirection == .left ? -(mainView?.frame.width ?? 0) : (mainView?.frame.width ?? 0)
case .menuSlideIn:
menuView?.alpha = 1
menuView?.frame.origin.x = presentDirection == .left ? -(mainView?.frame.width ?? 0) : (mainView?.frame.width ?? 0)
case .viewSlideInOut, .menuSlideIn:
menuView.alpha = 1
menuView.frame.origin.x = presentDirection == .left ? -menuWidth : mainView.frame.width
case .menuDissolveIn:
menuView?.alpha = 0
menuView?.frame.origin.x = presentDirection == .left ? 0 : (mainView?.frame.width ?? 0) - menuWidth
menuView.alpha = 0
menuView.frame.origin.x = presentDirection == .left ? 0 : mainView.frame.width - menuWidth
}
return self