Added blur background support for iPhone and iPad. Slight API changes to avoid race conditions while sharing a presenter.

This commit is contained in:
Gil Eluard
2020-11-30 15:11:08 +01:00
parent b1361ba9ad
commit cc4e5f543c
6 changed files with 84 additions and 32 deletions
@@ -30,6 +30,7 @@ final class SlidingModalPresentationAnimator: NSObject {
private let isPresenting: Bool
private let isSpanning: Bool
private let blurBackground: Bool
// MARK: - Setup
@@ -37,9 +38,10 @@ final class SlidingModalPresentationAnimator: NSObject {
///
/// - Parameter isPresenting: true to animate presentation or false to animate dismissal
/// - Parameter isSpanning: true to remove left, bottom and right spaces between the screen edges and the content view
required public init(isPresenting: Bool, isSpanning: Bool) {
required public init(isPresenting: Bool, isSpanning: Bool, blurBackground: Bool) {
self.isPresenting = isPresenting
self.isSpanning = isSpanning
self.blurBackground = blurBackground
super.init()
}
@@ -58,7 +60,9 @@ final class SlidingModalPresentationAnimator: NSObject {
let containerView = transitionContext.containerView
let slidingModalContainerView = isSpanning ? SpanningSlidingModalContainerView.instantiate() : SlidingModalContainerView.instantiate()
// Spanning not available for iPad
let slidingModalContainerView = isSpanning && UIDevice.current.userInterfaceIdiom != .pad ? SpanningSlidingModalContainerView.instantiate() : SlidingModalContainerView.instantiate()
slidingModalContainerView.blurBackground = self.blurBackground
slidingModalContainerView.alpha = 0
slidingModalContainerView.updateDimmingViewAlpha(0.0)