Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 71 additions & 6 deletions Demo/Demo/ViewControllersViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,112 @@ class SwiftMessagesTopSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .topMessage)
messageView.layout.size.height = .absolute(300)
}
}

class SwiftMessagesTopCardSegue: SwiftMessagesSegue {
class SwiftMessagesBottomSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .topCard)
configure(layout: .bottomMessage)
messageView.layout.size.height = .absolute(300)
}
}

class SwiftMessagesTopTabSegue: SwiftMessagesSegue {
class SwiftMessagesLeadingSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .topTab)
configure(layout: .leadingMessage)
messageView.layout.size.width = .absolute(300)
}
}

class SwiftMessagesBottomSegue: SwiftMessagesSegue {
class SwiftMessagesTrailingSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .bottomMessage)
configure(layout: .trailingMessage)
messageView.layout.size.width = .absolute(300)
}
}

class SwiftMessagesTopCardSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .topCard)
messageView.layout.size.height = .absolute(300)
}
}

class SwiftMessagesBottomCardSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .bottomCard)
messageView.layout.size.height = .absolute(300)
}
}

class SwiftMessagesLeadingCardSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .leadingCard)
messageView.layout.size.width = .absolute(300)
}
}

class SwiftMessagesTrailingCardSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .trailingCard)
messageView.layout.size.width = .absolute(300)
}
}

class SwiftMessagesTopTabSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .topTab)
messageView.layout.size.height = .absolute(300)
}
}

class SwiftMessagesBottomTabSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .bottomTab)
messageView.layout.size.height = .absolute(300)
}
}

class SwiftMessagesLeadingTabSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .leadingTab)
messageView.layout.size.width = .absolute(300)
}
}

class SwiftMessagesTrailingTabSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .trailingTab)
messageView.layout.size.width = .absolute(300)
}
}

class SwiftMessagesCenteredSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .centered)
messageView.layout.size.height = .absolute(300)
}
}

class SwiftMessagesOffCenteredSegue: SwiftMessagesSegue {
override public init(identifier: String?, source: UIViewController, destination: UIViewController) {
super.init(identifier: identifier, source: source, destination: destination)
configure(layout: .centered)
messageView.layout.insets.top = .absolute(0, from: .safeArea)
messageView.layout.center.x = .relative(0.33, in: .safeArea)
messageView.layout.size.height = .absolute(300)
}
}
16 changes: 12 additions & 4 deletions SwiftMessages.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,15 @@
228DF5681FAD0806004F8A39 /* infoIconSubtle.png in Resources */ = {isa = PBXBuildFile; fileRef = 228DF5471FAD0805004F8A39 /* infoIconSubtle.png */; };
228DF5691FAD0806004F8A39 /* successIconLight.png in Resources */ = {isa = PBXBuildFile; fileRef = 228DF5481FAD0805004F8A39 /* successIconLight.png */; };
228DF56A1FAD0806004F8A39 /* infoIconSubtle@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 228DF5491FAD0805004F8A39 /* infoIconSubtle@3x.png */; };
2290944825D88A05002E8111 /* Layout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2290944725D88A05002E8111 /* Layout.swift */; };
2290958125D9D407002E8111 /* UILayoutPriority+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2290958025D9D407002E8111 /* UILayoutPriority+Extensions.swift */; };
228F7DDE2ACF703A006C9644 /* MessageHostingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 228F7DDB2ACF7039006C9644 /* MessageHostingView.swift */; };
228F7DDF2ACF703A006C9644 /* SwiftMessageModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 228F7DDC2ACF703A006C9644 /* SwiftMessageModifier.swift */; };
228F7DE02ACF703A006C9644 /* MessageViewConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 228F7DDD2ACF703A006C9644 /* MessageViewConvertible.swift */; };
22982C172B6030B000852311 /* HapticMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22982C162B6030B000852311 /* HapticMessage.swift */; };
2298C2051EE47DC900E2DDC1 /* Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2298C2041EE47DC900E2DDC1 /* Weak.swift */; };
2298C2071EE480D000E2DDC1 /* Animator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2298C2061EE480D000E2DDC1 /* Animator.swift */; };
2298C2091EE486E300E2DDC1 /* TopBottomAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2298C2081EE486E300E2DDC1 /* TopBottomAnimation.swift */; };
2298C2091EE486E300E2DDC1 /* EdgeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2298C2081EE486E300E2DDC1 /* EdgeAnimation.swift */; };
229F778125FAB1E9008C2ACB /* UIWindow+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 229F778025FAB1E9008C2ACB /* UIWindow+Extensions.swift */; };
22D3B4562B1CEF76002D8665 /* Task+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D3B4552B1CEF76002D8665 /* Task+Extensions.swift */; };
22DFC9161EFF30F6001B1CA1 /* CenteredView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22DFC9151EFF30F6001B1CA1 /* CenteredView.xib */; };
Expand Down Expand Up @@ -152,13 +154,15 @@
228DF5471FAD0805004F8A39 /* infoIconSubtle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = infoIconSubtle.png; path = Resources/infoIconSubtle.png; sourceTree = "<group>"; };
228DF5481FAD0805004F8A39 /* successIconLight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = successIconLight.png; path = Resources/successIconLight.png; sourceTree = "<group>"; };
228DF5491FAD0805004F8A39 /* infoIconSubtle@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "infoIconSubtle@3x.png"; path = "Resources/infoIconSubtle@3x.png"; sourceTree = "<group>"; };
2290944725D88A05002E8111 /* Layout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layout.swift; sourceTree = "<group>"; };
2290958025D9D407002E8111 /* UILayoutPriority+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UILayoutPriority+Extensions.swift"; sourceTree = "<group>"; };
228F7DDB2ACF7039006C9644 /* MessageHostingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHostingView.swift; sourceTree = "<group>"; };
228F7DDC2ACF703A006C9644 /* SwiftMessageModifier.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftMessageModifier.swift; sourceTree = "<group>"; };
228F7DDD2ACF703A006C9644 /* MessageViewConvertible.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageViewConvertible.swift; sourceTree = "<group>"; };
22982C162B6030B000852311 /* HapticMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HapticMessage.swift; sourceTree = "<group>"; };
2298C2041EE47DC900E2DDC1 /* Weak.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Weak.swift; sourceTree = "<group>"; };
2298C2061EE480D000E2DDC1 /* Animator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Animator.swift; sourceTree = "<group>"; };
2298C2081EE486E300E2DDC1 /* TopBottomAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TopBottomAnimation.swift; sourceTree = "<group>"; };
2298C2081EE486E300E2DDC1 /* EdgeAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EdgeAnimation.swift; sourceTree = "<group>"; };
229F778025FAB1E9008C2ACB /* UIWindow+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIWindow+Extensions.swift"; sourceTree = "<group>"; };
22A2EA6E24EC6CFA00BB2540 /* Package.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = "<group>"; };
22D3B4552B1CEF76002D8665 /* Task+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Task+Extensions.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -231,6 +235,7 @@
children = (
220655111FAF82B600F4E00F /* MarginAdjustable+Extensions.swift */,
22774B9F20B5EF2A00813732 /* UIEdgeInsets+Extensions.swift */,
2290958025D9D407002E8111 /* UILayoutPriority+Extensions.swift */,
229F778025FAB1E9008C2ACB /* UIWindow+Extensions.swift */,
22D3B4552B1CEF76002D8665 /* Task+Extensions.swift */,
);
Expand All @@ -240,7 +245,7 @@
2244656C1EF1D62700C50413 /* Animations */ = {
isa = PBXGroup;
children = (
2298C2081EE486E300E2DDC1 /* TopBottomAnimation.swift */,
2298C2081EE486E300E2DDC1 /* EdgeAnimation.swift */,
2270044A1FAFA6DD0045DDC3 /* PhysicsAnimation.swift */,
22DFC9171F00674E001B1CA1 /* PhysicsPanHandler.swift */,
);
Expand Down Expand Up @@ -334,6 +339,7 @@
22982C162B6030B000852311 /* HapticMessage.swift */,
864495551D4F7C390056EB2A /* Identifiable.swift */,
225304652293000C00A03ACF /* KeyboardTrackingView.swift */,
2290944725D88A05002E8111 /* Layout.swift */,
86AAF81D1D5549680031EE32 /* MarginAdjustable.swift */,
86AAF82C1D580F410031EE32 /* Theme.swift */,
224C3C922C28BC4400B50B18 /* TopBottomAnimationStyle.swift */,
Expand Down Expand Up @@ -572,6 +578,7 @@
86BBA8FC1D5E03F100FE8F16 /* MessageView.swift in Sources */,
86BBA9061D5E040C00FE8F16 /* Identifiable.swift in Sources */,
22F27951210CE25900273E7F /* CornerRoundingView.swift in Sources */,
2290944825D88A05002E8111 /* Layout.swift in Sources */,
86BBA9011D5E040600FE8F16 /* PassthroughWindow.swift in Sources */,
2298C2071EE480D000E2DDC1 /* Animator.swift in Sources */,
22D3B4562B1CEF76002D8665 /* Task+Extensions.swift in Sources */,
Expand Down Expand Up @@ -600,13 +607,14 @@
86BBA8FF1D5E040600FE8F16 /* Presenter.swift in Sources */,
86BBA9051D5E040C00FE8F16 /* Theme.swift in Sources */,
86BBA9081D5E040C00FE8F16 /* Error.swift in Sources */,
2298C2091EE486E300E2DDC1 /* TopBottomAnimation.swift in Sources */,
2298C2091EE486E300E2DDC1 /* EdgeAnimation.swift in Sources */,
86589D471D64B6E40041676C /* BaseView.swift in Sources */,
0797E40E26EE12B400691606 /* WindowScene.swift in Sources */,
225304622290C76E00A03ACF /* NSLayoutConstraint+Extensions.swift in Sources */,
223DE69D2C29E50C000161E5 /* MessageGeometryProxy.swift in Sources */,
86BBA9071D5E040C00FE8F16 /* MarginAdjustable.swift in Sources */,
867BED211D622793005212E3 /* BackgroundViewable.swift in Sources */,
2290958125D9D407002E8111 /* UILayoutPriority+Extensions.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
10 changes: 7 additions & 3 deletions SwiftMessages/Animator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,17 @@ public struct SafeZoneConflicts: OptionSet {
}

public class AnimationContext {

public let messageView: UIView
public let containerView: UIView
public let containerView: UIView & LayoutInstalling
public let safeZoneConflicts: SafeZoneConflicts
public let interactiveHide: Bool

init(messageView: UIView, containerView: UIView, safeZoneConflicts: SafeZoneConflicts, interactiveHide: Bool) {
internal init(
messageView: UIView,
containerView: UIView & LayoutInstalling,
safeZoneConflicts: SafeZoneConflicts,
interactiveHide: Bool
) {
self.messageView = messageView
self.containerView = containerView
self.safeZoneConflicts = safeZoneConflicts
Expand Down
Loading