Skip to content

Commit

Permalink
Merge pull request #45 from OrkhanAlikhanov/status-bar
Browse files Browse the repository at this point in the history
Fixed issue-44, view is hidden below status bar during call
  • Loading branch information
DanielDahan authored Jul 31, 2018
2 parents 86f7123 + 3c48ac4 commit a636f63
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Motion.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = 'Motion'
s.version = '1.5.0'
s.swift_version = '4.0'
s.swift_version = '4.2'
s.license = 'MIT'
s.summary = 'A library used to create beautiful animations and transitions for Apple devices.'
s.homepage = 'http://cosmicmind.com'
Expand Down
28 changes: 28 additions & 0 deletions Sources/Transition/MotionTransition+Complete.swift
Original file line number Diff line number Diff line change
Expand Up @@ -143,5 +143,33 @@ extension MotionTransition {
}

tContext?.completeTransition(isFinishing)

let isModalDismissal = isModalTransition && !isPresenting
if isModalDismissal {
UIApplication.shared.fixRootViewY()
}
}
}


private extension UIApplication {
/**
When in-call, hotspot, or recording status bar is enabled, just after (custom) modal
dismissal transition animation ends `UITransitionView` is removed from the hierarchy
and that removal was moving `rootViewController.view` 20 points upwards. This function
should be called after transitioningContext.completeTransition(_:) upon modal dismissal
transition. It applies the work that `UITransitionView` should ideally have done after
custom modal dismissal. `UIKit` modal dismissals do not suffer from this.

Fixes issue-44. See issue-44 for more info.
*/
func fixRootViewY() {
guard statusBarFrame.height == 40, let window = keyWindow, let vc = window.rootViewController else {
return
}

if vc.view.frame.maxY + 20 == window.frame.height {
vc.view.frame.origin.y += 20
}
}
}

0 comments on commit a636f63

Please sign in to comment.