Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
Motion
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitriy Stepanets
Motion
Commits
1127ed5a
Unverified
Commit
1127ed5a
authored
Jun 05, 2017
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
reworked MotionPreprocessor and added MotionAnimator
parent
147da727
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
126 additions
and
56 deletions
+126
-56
Motion.xcodeproj/project.pbxproj
+10
-2
Sources/Animator/MotionAnimator.swift
+75
-0
Sources/MotionTypes.swift
+0
-51
Sources/Preprocessors/BasePreprocessor.swift
+0
-3
Sources/Preprocessors/MotionPreprocessor.swift
+41
-0
No files found.
Motion.xcodeproj/project.pbxproj
View file @
1127ed5a
...
@@ -12,6 +12,8 @@
...
@@ -12,6 +12,8 @@
963150D61EE51C7A002B0D42
/* MotionAnimation.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
963150D41EE51C7A002B0D42
/* MotionAnimation.swift */
;
};
963150D61EE51C7A002B0D42
/* MotionAnimation.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
963150D41EE51C7A002B0D42
/* MotionAnimation.swift */
;
};
963150DA1EE51EB4002B0D42
/* MotionAnimationFillMode.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
963150D91EE51EB4002B0D42
/* MotionAnimationFillMode.swift */
;
};
963150DA1EE51EB4002B0D42
/* MotionAnimationFillMode.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
963150D91EE51EB4002B0D42
/* MotionAnimationFillMode.swift */
;
};
968989B91EE5B34B003B8F3D
/* MotionHasInsertOrder.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
968989B81EE5B34B003B8F3D
/* MotionHasInsertOrder.swift */
;
};
968989B91EE5B34B003B8F3D
/* MotionHasInsertOrder.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
968989B81EE5B34B003B8F3D
/* MotionHasInsertOrder.swift */
;
};
968989DC1EE65F2B003B8F3D
/* MotionPreprocessor.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
968989DB1EE65F2B003B8F3D
/* MotionPreprocessor.swift */
;
};
968989DE1EE6633E003B8F3D
/* MotionAnimator.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
968989DD1EE6633E003B8F3D
/* MotionAnimator.swift */
;
};
96AEB68D1EE4610F009A3BE0
/* MotionAnimatorViewContext.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96AEB6651EE4610F009A3BE0
/* MotionAnimatorViewContext.swift */
;
};
96AEB68D1EE4610F009A3BE0
/* MotionAnimatorViewContext.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96AEB6651EE4610F009A3BE0
/* MotionAnimatorViewContext.swift */
;
};
96AEB68E1EE4610F009A3BE0
/* MotionCoreAnimationViewContext.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96AEB6661EE4610F009A3BE0
/* MotionCoreAnimationViewContext.swift */
;
};
96AEB68E1EE4610F009A3BE0
/* MotionCoreAnimationViewContext.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96AEB6661EE4610F009A3BE0
/* MotionCoreAnimationViewContext.swift */
;
};
96AEB68F1EE4610F009A3BE0
/* MotionDefaultAnimator.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96AEB6671EE4610F009A3BE0
/* MotionDefaultAnimator.swift */
;
};
96AEB68F1EE4610F009A3BE0
/* MotionDefaultAnimator.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
96AEB6671EE4610F009A3BE0
/* MotionDefaultAnimator.swift */
;
};
...
@@ -54,13 +56,15 @@
...
@@ -54,13 +56,15 @@
963150D41EE51C7A002B0D42
/* MotionAnimation.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionAnimation.swift
;
sourceTree
=
"<group>"
;
};
963150D41EE51C7A002B0D42
/* MotionAnimation.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionAnimation.swift
;
sourceTree
=
"<group>"
;
};
963150D91EE51EB4002B0D42
/* MotionAnimationFillMode.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionAnimationFillMode.swift
;
sourceTree
=
"<group>"
;
};
963150D91EE51EB4002B0D42
/* MotionAnimationFillMode.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionAnimationFillMode.swift
;
sourceTree
=
"<group>"
;
};
968989B81EE5B34B003B8F3D
/* MotionHasInsertOrder.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionHasInsertOrder.swift
;
sourceTree
=
"<group>"
;
};
968989B81EE5B34B003B8F3D
/* MotionHasInsertOrder.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionHasInsertOrder.swift
;
sourceTree
=
"<group>"
;
};
968989DB1EE65F2B003B8F3D
/* MotionPreprocessor.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionPreprocessor.swift
;
sourceTree
=
"<group>"
;
};
968989DD1EE6633E003B8F3D
/* MotionAnimator.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionAnimator.swift
;
sourceTree
=
"<group>"
;
};
96AEB6651EE4610F009A3BE0
/* MotionAnimatorViewContext.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionAnimatorViewContext.swift
;
sourceTree
=
"<group>"
;
};
96AEB6651EE4610F009A3BE0
/* MotionAnimatorViewContext.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionAnimatorViewContext.swift
;
sourceTree
=
"<group>"
;
};
96AEB6661EE4610F009A3BE0
/* MotionCoreAnimationViewContext.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionCoreAnimationViewContext.swift
;
sourceTree
=
"<group>"
;
};
96AEB6661EE4610F009A3BE0
/* MotionCoreAnimationViewContext.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionCoreAnimationViewContext.swift
;
sourceTree
=
"<group>"
;
};
96AEB6671EE4610F009A3BE0
/* MotionDefaultAnimator.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionDefaultAnimator.swift
;
sourceTree
=
"<group>"
;
};
96AEB6671EE4610F009A3BE0
/* MotionDefaultAnimator.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionDefaultAnimator.swift
;
sourceTree
=
"<group>"
;
};
96AEB6681EE4610F009A3BE0
/* MotionViewPropertyViewContext.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionViewPropertyViewContext.swift
;
sourceTree
=
"<group>"
;
};
96AEB6681EE4610F009A3BE0
/* MotionViewPropertyViewContext.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionViewPropertyViewContext.swift
;
sourceTree
=
"<group>"
;
};
96AEB66A1EE4610F009A3BE0
/* MotionDebugPlugin.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionDebugPlugin.swift
;
sourceTree
=
"<group>"
;
};
96AEB66A1EE4610F009A3BE0
/* MotionDebugPlugin.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionDebugPlugin.swift
;
sourceTree
=
"<group>"
;
};
96AEB66B1EE4610F009A3BE0
/* MotionDebugView.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionDebugView.swift
;
sourceTree
=
"<group>"
;
};
96AEB66B1EE4610F009A3BE0
/* MotionDebugView.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
MotionDebugView.swift
;
sourceTree
=
"<group>"
;
};
96AEB66C1EE4610F009A3BE0
/* DefaultAnimationPreprocessor.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
DefaultAnimationPreprocessor.swift
;
sourceTree
=
"<group>"
;
};
96AEB66C1EE4610F009A3BE0
/* DefaultAnimationPreprocessor.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
name
=
DefaultAnimationPreprocessor.swift
;
path
=
../
DefaultAnimationPreprocessor.swift
;
sourceTree
=
"<group>"
;
};
96AEB66E1EE4610F009A3BE0
/* Motion+Array.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
"Motion+Array.swift"
;
sourceTree
=
"<group>"
;
};
96AEB66E1EE4610F009A3BE0
/* Motion+Array.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
"Motion+Array.swift"
;
sourceTree
=
"<group>"
;
};
96AEB66F1EE4610F009A3BE0
/* Motion+CALayer.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
"Motion+CALayer.swift"
;
sourceTree
=
"<group>"
;
};
96AEB66F1EE4610F009A3BE0
/* Motion+CALayer.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
"Motion+CALayer.swift"
;
sourceTree
=
"<group>"
;
};
96AEB6701EE4610F009A3BE0
/* Motion+CAMediaTimingFunction.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
"Motion+CAMediaTimingFunction.swift"
;
sourceTree
=
"<group>"
;
};
96AEB6701EE4610F009A3BE0
/* Motion+CAMediaTimingFunction.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
path
=
"Motion+CAMediaTimingFunction.swift"
;
sourceTree
=
"<group>"
;
};
...
@@ -109,6 +113,7 @@
...
@@ -109,6 +113,7 @@
96AEB6641EE4610F009A3BE0
/* Animator */
=
{
96AEB6641EE4610F009A3BE0
/* Animator */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
968989DD1EE6633E003B8F3D
/* MotionAnimator.swift */
,
96AEB6651EE4610F009A3BE0
/* MotionAnimatorViewContext.swift */
,
96AEB6651EE4610F009A3BE0
/* MotionAnimatorViewContext.swift */
,
96AEB6661EE4610F009A3BE0
/* MotionCoreAnimationViewContext.swift */
,
96AEB6661EE4610F009A3BE0
/* MotionCoreAnimationViewContext.swift */
,
96AEB6671EE4610F009A3BE0
/* MotionDefaultAnimator.swift */
,
96AEB6671EE4610F009A3BE0
/* MotionDefaultAnimator.swift */
,
...
@@ -158,12 +163,14 @@
...
@@ -158,12 +163,14 @@
96AEB6861EE4610F009A3BE0
/* Preprocessors */
=
{
96AEB6861EE4610F009A3BE0
/* Preprocessors */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
968989DB1EE65F2B003B8F3D
/* MotionPreprocessor.swift */
,
96AEB6871EE4610F009A3BE0
/* BasePreprocessor.swift */
,
96AEB6871EE4610F009A3BE0
/* BasePreprocessor.swift */
,
96AEB6881EE4610F009A3BE0
/* CascadePreprocessor.swift */
,
96AEB6881EE4610F009A3BE0
/* CascadePreprocessor.swift */
,
96AEB6891EE4610F009A3BE0
/* DurationPreprocessor.swift */
,
96AEB6891EE4610F009A3BE0
/* DurationPreprocessor.swift */
,
96AEB68A1EE4610F009A3BE0
/* IgnoreSubviewModifiersPreprocessor.swift */
,
96AEB68A1EE4610F009A3BE0
/* IgnoreSubviewModifiersPreprocessor.swift */
,
96AEB68B1EE4610F009A3BE0
/* MatchPreprocessor.swift */
,
96AEB68B1EE4610F009A3BE0
/* MatchPreprocessor.swift */
,
96AEB68C1EE4610F009A3BE0
/* SourcePreprocessor.swift */
,
96AEB68C1EE4610F009A3BE0
/* SourcePreprocessor.swift */
,
96AEB66C1EE4610F009A3BE0
/* DefaultAnimationPreprocessor.swift */
,
);
);
path
=
Preprocessors
;
path
=
Preprocessors
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -192,7 +199,6 @@
...
@@ -192,7 +199,6 @@
96C98DED1E438A5700B22906
/* Motion.h */
,
96C98DED1E438A5700B22906
/* Motion.h */
,
96AEB6641EE4610F009A3BE0
/* Animator */
,
96AEB6641EE4610F009A3BE0
/* Animator */
,
96AEB6691EE4610F009A3BE0
/* Debug Plugin */
,
96AEB6691EE4610F009A3BE0
/* Debug Plugin */
,
96AEB66C1EE4610F009A3BE0
/* DefaultAnimationPreprocessor.swift */
,
96AEB66D1EE4610F009A3BE0
/* Extensions */
,
96AEB66D1EE4610F009A3BE0
/* Extensions */
,
96AEB6771EE4610F009A3BE0
/* Motion.swift */
,
96AEB6771EE4610F009A3BE0
/* Motion.swift */
,
963150D41EE51C7A002B0D42
/* MotionAnimation.swift */
,
963150D41EE51C7A002B0D42
/* MotionAnimation.swift */
,
...
@@ -298,6 +304,7 @@
...
@@ -298,6 +304,7 @@
96AEB68F1EE4610F009A3BE0
/* MotionDefaultAnimator.swift in Sources */
,
96AEB68F1EE4610F009A3BE0
/* MotionDefaultAnimator.swift in Sources */
,
96AEB69D1EE4610F009A3BE0
/* Motion.swift in Sources */
,
96AEB69D1EE4610F009A3BE0
/* Motion.swift in Sources */
,
963150D61EE51C7A002B0D42
/* MotionAnimation.swift in Sources */
,
963150D61EE51C7A002B0D42
/* MotionAnimation.swift in Sources */
,
968989DE1EE6633E003B8F3D
/* MotionAnimator.swift in Sources */
,
96AEB6A21EE4610F009A3BE0
/* MotionTransition+MotionStringConvertible.swift in Sources */
,
96AEB6A21EE4610F009A3BE0
/* MotionTransition+MotionStringConvertible.swift in Sources */
,
968989B91EE5B34B003B8F3D
/* MotionHasInsertOrder.swift in Sources */
,
968989B91EE5B34B003B8F3D
/* MotionHasInsertOrder.swift in Sources */
,
96AEB6A51EE4610F009A3BE0
/* MotionTargetState.swift in Sources */
,
96AEB6A51EE4610F009A3BE0
/* MotionTargetState.swift in Sources */
,
...
@@ -315,6 +322,7 @@
...
@@ -315,6 +322,7 @@
96AEB69B1EE4610F009A3BE0
/* Motion+UIViewController.swift in Sources */
,
96AEB69B1EE4610F009A3BE0
/* Motion+UIViewController.swift in Sources */
,
96AEB6A41EE4610F009A3BE0
/* MotionStringConvertible.swift in Sources */
,
96AEB6A41EE4610F009A3BE0
/* MotionStringConvertible.swift in Sources */
,
96AEB6A81EE4610F009A3BE0
/* Nodes.swift in Sources */
,
96AEB6A81EE4610F009A3BE0
/* Nodes.swift in Sources */
,
968989DC1EE65F2B003B8F3D
/* MotionPreprocessor.swift in Sources */
,
96AEB6A91EE4610F009A3BE0
/* Parser.swift in Sources */
,
96AEB6A91EE4610F009A3BE0
/* Parser.swift in Sources */
,
96AEB69F1EE4610F009A3BE0
/* MotionContext.swift in Sources */
,
96AEB69F1EE4610F009A3BE0
/* MotionContext.swift in Sources */
,
96AEB6A71EE4610F009A3BE0
/* Lexer.swift in Sources */
,
96AEB6A71EE4610F009A3BE0
/* Lexer.swift in Sources */
,
...
...
Sources/Animator/MotionAnimator.swift
0 → 100644
View file @
1127ed5a
/*
* The MIT License (MIT)
*
* Copyright (C) 2017, Daniel Dahan and CosmicMind, Inc. <http://cosmicmind.com>.
* All rights reserved.
*
* Original Inspiration & Author
* Copyright (c) 2016 Luke Zhao <me@lkzhao.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
import
UIKit
public
protocol
MotionAnimator
:
class
{
/// A reference to a MotionContext.
weak
var
context
:
MotionContext
!
{
get
set
}
/// Cleans the contexts.
func
clean
()
/**
A function that determines if a view can be animated.
- Parameter view: A UIView.
- Parameter isAppearing: A boolean that determines whether the
view is appearing.
*/
func
canAnimate
(
view
:
UIView
,
isAppearing
:
Bool
)
->
Bool
/**
Animates the from-views to the to-views.
- Parameter fromViews: An Array of UIViews.
- Parameter toViews: An Array of UIViews.
- Returns: A TimeInterval.
*/
func
animate
(
fromViews
:
[
UIView
],
toViews
:
[
UIView
])
->
TimeInterval
/**
Moves the view's animation to the given elapsed time.
- Parameter to elapsedTime: A TimeInterval.
*/
func
seek
(
to
elapsedTime
:
TimeInterval
)
/**
Resumes the animation with a given elapsed time and
optional reversed boolean.
- Parameter at elapsedTime: A TimeInterval.
- Parameter isReversed: A boolean to reverse the animation
or not.
*/
func
resume
(
at
elapsedTime
:
TimeInterval
,
isReversed
:
Bool
)
->
TimeInterval
/**
Applies the given state to the given view.
- Parameter state: A MotionTargetState.
- Parameter to view: A UIView.
*/
func
apply
(
state
:
MotionTargetState
,
to
view
:
UIView
)
}
Sources/MotionTypes.swift
View file @
1127ed5a
...
@@ -28,57 +28,6 @@
...
@@ -28,57 +28,6 @@
import
UIKit
import
UIKit
public
protocol
MotionPreprocessor
:
class
{
weak
var
context
:
MotionContext
!
{
get
set
}
func
process
(
fromViews
:
[
UIView
],
toViews
:
[
UIView
])
}
public
protocol
MotionAnimator
:
class
{
/// A reference to a MotionContext.
weak
var
context
:
MotionContext
!
{
get
set
}
/// Cleans the contexts.
func
clean
()
/**
A function that determines if a view can be animated.
- Parameter view: A UIView.
- Parameter isAppearing: A boolean that determines whether the
view is appearing.
*/
func
canAnimate
(
view
:
UIView
,
isAppearing
:
Bool
)
->
Bool
/**
Animates the from-views to the to-views.
- Parameter fromViews: An Array of UIViews.
- Parameter toViews: An Array of UIViews.
- Returns: A TimeInterval.
*/
func
animate
(
fromViews
:
[
UIView
],
toViews
:
[
UIView
])
->
TimeInterval
/**
Moves the view's animation to the given elapsed time.
- Parameter to elapsedTime: A TimeInterval.
*/
func
seek
(
to
elapsedTime
:
TimeInterval
)
/**
Resumes the animation with a given elapsed time and
optional reversed boolean.
- Parameter at elapsedTime: A TimeInterval.
- Parameter isReversed: A boolean to reverse the animation
or not.
*/
func
resume
(
at
elapsedTime
:
TimeInterval
,
isReversed
:
Bool
)
->
TimeInterval
/**
Applies the given state to the given view.
- Parameter state: A MotionTargetState.
- Parameter to view: A UIView.
*/
func
apply
(
state
:
MotionTargetState
,
to
view
:
UIView
)
}
public
protocol
MotionProgressUpdateObserver
{
public
protocol
MotionProgressUpdateObserver
{
func
motionDidUpdateProgress
(
progress
:
Double
)
func
motionDidUpdateProgress
(
progress
:
Double
)
}
}
...
...
Sources/Preprocessors/BasePreprocessor.swift
View file @
1127ed5a
//
// CascadeEffect.swift
/*
/*
* The MIT License (MIT)
* The MIT License (MIT)
*
*
...
@@ -32,6 +30,5 @@ import UIKit
...
@@ -32,6 +30,5 @@ import UIKit
class
BasePreprocessor
:
MotionPreprocessor
{
class
BasePreprocessor
:
MotionPreprocessor
{
weak
public
var
context
:
MotionContext
!
weak
public
var
context
:
MotionContext
!
func
process
(
fromViews
:
[
UIView
],
toViews
:
[
UIView
])
{}
func
process
(
fromViews
:
[
UIView
],
toViews
:
[
UIView
])
{}
}
}
Sources/Preprocessors/MotionPreprocessor.swift
0 → 100644
View file @
1127ed5a
/*
* The MIT License (MIT)
*
* Copyright (C) 2017, Daniel Dahan and CosmicMind, Inc. <http://cosmicmind.com>.
* All rights reserved.
*
* Original Inspiration & Author
* Copyright (c) 2016 Luke Zhao <me@lkzhao.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
import
UIKit
public
protocol
MotionPreprocessor
:
class
{
/// A reference to a MotionContext.
weak
var
context
:
MotionContext
!
{
get
set
}
/**
Processes the transitionary views.
- Parameter fromViews: An Array of UIViews.
- Parameter toViews: An Array of UIViews.
*/
func
process
(
fromViews
:
[
UIView
],
toViews
:
[
UIView
])
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment