HeroModifier
public final class HeroModifier
extension HeroModifier: HeroStringConvertible
Undocumented
-
Undocumented
Declaration
Swift
public init(applyFunction: @escaping (inout HeroTargetState) -> Void)
-
Apply modifiers directly to the view at the start of the transition. The modifiers supplied here won’t be animated. For source views, modifiers are set directly at the beginning of the animation. For destination views, they replace the target state (final appearance).
Declaration
Swift
public static func beginWith(_ modifiers: [HeroModifier]) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func beginWith(modifiers: [HeroModifier]) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func beginWith(_ modifiers: HeroModifier...) -> HeroModifier
-
Use global coordinate space.
When using global coordinate space. The view become a independent view that is not a subview of any view. It won’t move when its parent view moves, and won’t be affected by parent view’s attributes.
When a view is matched, this is automatically enabled. The
source
modifier will also enable this.Global coordinate space is default for all views prior to version 0.1.3
Declaration
Swift
public static var useGlobalCoordinateSpace: HeroModifier
-
ignore all heroModifiers attributes for a view’s direct subviews.
Declaration
Swift
public static var ignoreSubviewModifiers: HeroModifier
-
ignore all heroModifiers attributes for a view’s subviews.
- recursive: if false, will only ignore direct subviews’ modifiers. default false.
Declaration
Swift
public static func ignoreSubviewModifiers(recursive: Bool = false) -> HeroModifier
-
Will create snapshot optimized for different view type. For custom views or views with masking, useOptimizedSnapshot might create snapshots that appear differently than the actual view. In that case, use .useNormalSnapshot or .useSlowRenderSnapshot to disable the optimization.
This modifier actually does nothing by itself since .useOptimizedSnapshot is the default.
Declaration
Swift
public static var useOptimizedSnapshot: HeroModifier
-
Create snapshot using snapshotView(afterScreenUpdates:).
Declaration
Swift
public static var useNormalSnapshot: HeroModifier
-
Create snapshot using layer.render(in: currentContext). This is slower than .useNormalSnapshot but gives more accurate snapshot for some views (eg. UIStackView).
Declaration
Swift
public static var useLayerRenderSnapshot: HeroModifier
-
Force Hero to not create any snapshot when animating this view. This will mess up the view hierarchy, therefore, view controllers have to rebuild its view structure after the transition finishes.
Declaration
Swift
public static var useNoSnapshot: HeroModifier
-
Force the view to animate.
By default, Hero will not animate if the view is outside the screen bounds or if there is no animatable hero modifier, unless this modifier is used.
Declaration
Swift
public static var forceAnimate: HeroModifier
-
Force Hero use scale based size animation. This will convert all .size modifier into .scale modifier. This is to help Hero animate layers that doesn’t support bounds animation. Also gives better performance.
Declaration
Swift
public static var useScaleBasedSizeChange: HeroModifier
-
Undocumented
Declaration
Swift
public static func from(node: ExprNode) -> HeroModifier?
-
Fade the view during transition
Declaration
Swift
public static var fade: HeroModifier
-
Force don’t fade view during transition
Declaration
Swift
public static var forceNonFade: HeroModifier
-
Set the position for the view to animate from/to.
- position: position for the view to animate from/to
Declaration
Swift
public static func position(_ position: CGPoint) -> HeroModifier
-
Set the size for the view to animate from/to.
- size: size for the view to animate from/to
Declaration
Swift
public static func size(_ size: CGSize) -> HeroModifier
-
Set the transform for the view to animate from/to. Will override previous perspective, scale, translate, & rotate modifiers
- t: the CATransform3D object
Declaration
Swift
public static func transform(_ t: CATransform3D) -> HeroModifier
-
Set the perspective on the transform. use in combination with the rotate modifier.
- perspective: set the camera distance of the transform
Declaration
Swift
public static func perspective(_ perspective: CGFloat) -> HeroModifier
-
Scale 3d
- x: scale factor on x axis, default 1
- y: scale factor on y axis, default 1
- z: scale factor on z axis, default 1
Declaration
Swift
public static func scale(x: CGFloat = 1, y: CGFloat = 1, z: CGFloat = 1) -> HeroModifier
-
Scale in x & y axis
- xy: scale factor in both x & y axis
Declaration
Swift
public static func scale(_ xy: CGFloat) -> HeroModifier
-
Translate 3d
- x: translation distance on x axis in display pixel, default 0
- y: translation distance on y axis in display pixel, default 0
- z: translation distance on z axis in display pixel, default 0
Declaration
Swift
public static func translate(x: CGFloat = 0, y: CGFloat = 0, z: CGFloat = 0) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func translate(_ point: CGPoint, z: CGFloat = 0) -> HeroModifier
-
Rotate 3d
- x: rotation on x axis in radian, default 0
- y: rotation on y axis in radian, default 0
- z: rotation on z axis in radian, default 0
Declaration
Swift
public static func rotate(x: CGFloat = 0, y: CGFloat = 0, z: CGFloat = 0) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func rotate(_ point: CGPoint, z: CGFloat = 0) -> HeroModifier
-
Rotate 2d
- z: rotation in radian
Declaration
Swift
public static func rotate(_ z: CGFloat) -> HeroModifier
-
Set the backgroundColor for the view to animate from/to.
- backgroundColor: backgroundColor for the view to animate from/to
Declaration
Swift
public static func backgroundColor(_ backgroundColor: UIColor) -> HeroModifier
-
Set the borderColor for the view to animate from/to.
- borderColor: borderColor for the view to animate from/to
Declaration
Swift
public static func borderColor(_ borderColor: UIColor) -> HeroModifier
-
Set the shadowColor for the view to animate from/to.
- shadowColor: shadowColor for the view to animate from/to
Declaration
Swift
public static func shadowColor(_ shadowColor: UIColor) -> HeroModifier
-
Create an overlay on the animating view.
- color: color of the overlay
- opacity: opacity of the overlay
Declaration
Swift
public static func overlay(color: UIColor, opacity: CGFloat) -> HeroModifier
-
Set the opacity for the view to animate from/to.
- opacity: opacity for the view to animate from/to
Declaration
Swift
public static func opacity(_ opacity: CGFloat) -> HeroModifier
-
Set the cornerRadius for the view to animate from/to.
- cornerRadius: cornerRadius for the view to animate from/to
Declaration
Swift
public static func cornerRadius(_ cornerRadius: CGFloat) -> HeroModifier
-
Set the zPosition for the view to animate from/to.
- zPosition: zPosition for the view to animate from/to
Declaration
Swift
public static func zPosition(_ zPosition: CGFloat) -> HeroModifier
-
Set the contentsRect for the view to animate from/to.
- contentsRect: contentsRect for the view to animate from/to
Declaration
Swift
public static func contentsRect(_ contentsRect: CGRect) -> HeroModifier
-
Set the contentsScale for the view to animate from/to.
- contentsScale: contentsScale for the view to animate from/to
Declaration
Swift
public static func contentsScale(_ contentsScale: CGFloat) -> HeroModifier
-
Set the borderWidth for the view to animate from/to.
- borderWidth: borderWidth for the view to animate from/to
Declaration
Swift
public static func borderWidth(_ borderWidth: CGFloat) -> HeroModifier
-
Set the shadowOpacity for the view to animate from/to.
- shadowOpacity: shadowOpacity for the view to animate from/to
Declaration
Swift
public static func shadowOpacity(_ shadowOpacity: CGFloat) -> HeroModifier
-
Set the shadowOffset for the view to animate from/to.
- shadowOffset: shadowOffset for the view to animate from/to
Declaration
Swift
public static func shadowOffset(_ shadowOffset: CGSize) -> HeroModifier
-
Set the shadowRadius for the view to animate from/to.
- shadowRadius: shadowRadius for the view to animate from/to
Declaration
Swift
public static func shadowRadius(_ shadowRadius: CGFloat) -> HeroModifier
-
Set the shadowPath for the view to animate from/to.
- shadowPath: shadowPath for the view to animate from/to
Declaration
Swift
public static func shadowPath(_ shadowPath: CGPath) -> HeroModifier
-
Set the masksToBounds for the view to animate from/to.
- masksToBounds: masksToBounds for the view to animate from/to
Declaration
Swift
public static func masksToBounds(_ masksToBounds: Bool) -> HeroModifier
-
Sets the duration of the animation for a given view. If not used, Hero will use determine the duration based on the distance and size changes.
- duration: duration of the animation
Note: a duration of .infinity means matching the duration of the longest animation. same as .durationMatchLongest
Declaration
Swift
public static func duration(_ duration: TimeInterval) -> HeroModifier
-
Sets the duration of the animation for a given view to match the longest animation of the transition.
Declaration
Swift
public static var durationMatchLongest: HeroModifier
-
Sets the delay of the animation for a given view.
- delay: delay of the animation
Declaration
Swift
public static func delay(_ delay: TimeInterval) -> HeroModifier
-
Sets the timing function of the animation for a given view. If not used, Hero will use determine the timing function based on whether or not the view is entering or exiting the screen.
- timingFunction: timing function of the animation
Declaration
Swift
public static func timingFunction(_ timingFunction: CAMediaTimingFunction) -> HeroModifier
-
(iOS 9+) Use spring animation with custom stiffness & damping. The duration will be automatically calculated. Will be ignored if arc, timingFunction, or duration is set.
- stiffness: stiffness of the spring
- damping: damping of the spring
Declaration
Swift
@available(iOS 9, *) public static func spring(stiffness: CGFloat, damping: CGFloat) -> HeroModifier
-
Transition from/to the state of the view with matching heroID Will also force the view to use global coordinate space.
The following layer properties will be animated from the given view.
position bounds.size cornerRadius transform shadowColor shadowOpacity shadowOffset shadowRadius shadowPath
Note that the following properties won’t be taken from the source view.
backgroundColor borderWidth borderColor
- heroID: the source view’s heroId.
Declaration
Swift
public static func source(heroID: String) -> HeroModifier
-
Works in combination with position modifier to apply a natural curve when moving to the destination.
Declaration
Swift
public static var arc: HeroModifier
-
Works in combination with position modifier to apply a natural curve when moving to the destination.
- intensity: a value of 1 represent a downward natural curve ╰. a value of -1 represent a upward curve ╮. default is 1.
Declaration
Swift
public static func arc(intensity: CGFloat = 1) -> HeroModifier
-
Cascade applys increasing delay modifiers to subviews
Declaration
Swift
public static var cascade: HeroModifier
-
Cascade applys increasing delay modifiers to subviews
- delta: delay in between each animation
- direction: cascade direction
- delayMatchedViews: whether or not to delay matched subviews until all cascading animation have started
Declaration
Swift
public static func cascade(delta: TimeInterval = 0.02, direction: CascadeDirection = .topToBottom, delayMatchedViews: Bool = false) -> HeroModifier
-
Apply modifiers only if the condition return true.
Declaration
Swift
public static func when(_ condition: @escaping (HeroConditionalContext) -> Bool, _ modifiers: [HeroModifier]) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func when(_ condition: @escaping (HeroConditionalContext) -> Bool, _ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenMatched(_ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenPresenting(_ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenDismissing(_ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenAppearing(_ modifiers: HeroModifier...) -> HeroModifier
-
Undocumented
Declaration
Swift
public static func whenDisappearing(_ modifiers: HeroModifier...) -> HeroModifier