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
601c787a
Commit
601c787a
authored
Dec 20, 2017
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
minor cleanup
parent
7f734fe0
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
47 deletions
+47
-47
Motion.xcodeproj/project.pbxproj
+1
-1
Sources/Transition/MotionProgressRunner.swift
+10
-10
Sources/Transition/MotionTransition+Complete.swift
+0
-21
Sources/Transition/MotionTransition.swift
+36
-15
No files found.
Motion.xcodeproj/project.pbxproj
View file @
601c787a
...
@@ -145,6 +145,7 @@
...
@@ -145,6 +145,7 @@
965FE9781FE1D8120098BDD0
/* Transition */
=
{
965FE9781FE1D8120098BDD0
/* Transition */
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
965FE9641FDCCE910098BDD0
/* MotionProgressRunner.swift */
,
965FE9791FE1D83D0098BDD0
/* MotionTransition.swift */
,
965FE9791FE1D83D0098BDD0
/* MotionTransition.swift */
,
965FE9661FDD99800098BDD0
/* MotionTransition+Start.swift */
,
965FE9661FDD99800098BDD0
/* MotionTransition+Start.swift */
,
965FE96E1FDEFA8B0098BDD0
/* MotionTransition+Animate.swift */
,
965FE96E1FDEFA8B0098BDD0
/* MotionTransition+Animate.swift */
,
...
@@ -181,7 +182,6 @@
...
@@ -181,7 +182,6 @@
96E409BC1F24FC300015A2B5
/* LICENSE */
,
96E409BC1F24FC300015A2B5
/* LICENSE */
,
96E4094F1F24F7370015A2B5
/* Motion.h */
,
96E4094F1F24F7370015A2B5
/* Motion.h */
,
965FE9681FDDA1F20098BDD0
/* MotionViewOrderStrategy.swift */
,
965FE9681FDDA1F20098BDD0
/* MotionViewOrderStrategy.swift */
,
965FE9641FDCCE910098BDD0
/* MotionProgressRunner.swift */
,
96E409511F24F7370015A2B5
/* MotionAnimation.swift */
,
96E409511F24F7370015A2B5
/* MotionAnimation.swift */
,
96E409521F24F7370015A2B5
/* MotionAnimationState.swift */
,
96E409521F24F7370015A2B5
/* MotionAnimationState.swift */
,
96E409531F24F7370015A2B5
/* MotionCAAnimation.swift */
,
96E409531F24F7370015A2B5
/* MotionCAAnimation.swift */
,
...
...
Sources/MotionProgressRunner.swift
→
Sources/
Transition/
MotionProgressRunner.swift
View file @
601c787a
...
@@ -37,39 +37,39 @@ class MotionProgressRunner {
...
@@ -37,39 +37,39 @@ class MotionProgressRunner {
weak
var
delegate
:
MotionProgressRunnerDelegate
?
weak
var
delegate
:
MotionProgressRunnerDelegate
?
var
isRunning
:
Bool
{
var
isRunning
:
Bool
{
return
displayLink
!=
nil
return
nil
!=
displayLink
}
}
internal
var
timePassed
:
TimeInterval
=
0
internal
var
progress
:
TimeInterval
=
0
internal
var
duration
:
TimeInterval
=
0
internal
var
duration
:
TimeInterval
=
0
internal
var
displayLink
:
CADisplayLink
?
internal
var
displayLink
:
CADisplayLink
?
internal
var
isReversed
:
Bool
=
false
internal
var
isReversed
:
Bool
=
false
@objc
@objc
func
displayUpdate
(
_
link
:
CADisplayLink
)
{
func
displayUpdate
(
_
link
:
CADisplayLink
)
{
timePassed
+=
isReversed
?
-
link
.
duration
:
link
.
duration
progress
+=
isReversed
?
-
link
.
duration
:
link
.
duration
if
isReversed
,
timePassed
<=
1.0
/
120
{
if
isReversed
,
progress
<=
1.0
/
120
{
delegate
?
.
complete
(
isFinishing
:
false
)
delegate
?
.
complete
(
isFinishing
:
false
)
stop
()
stop
()
return
return
}
}
if
!
isReversed
,
timePassed
>
duration
-
1.0
/
120
{
if
!
isReversed
,
progress
>
duration
-
1.0
/
120
{
delegate
?
.
complete
(
isFinishing
:
true
)
delegate
?
.
complete
(
isFinishing
:
true
)
stop
()
stop
()
return
return
}
}
delegate
?
.
update
(
progress
:
timePassed
/
duration
)
delegate
?
.
update
(
progress
:
progress
/
duration
)
}
}
func
start
(
timePassed
:
TimeInterval
,
totalTime
:
TimeInterval
,
reverse
:
Bool
)
{
func
start
(
progress
:
TimeInterval
,
duration
:
TimeInterval
,
isReversed
:
Bool
)
{
stop
()
stop
()
self
.
timePassed
=
timePassed
self
.
progress
=
progress
self
.
isReversed
=
reverse
self
.
isReversed
=
isReversed
self
.
duration
=
totalTime
self
.
duration
=
duration
displayLink
=
CADisplayLink
(
target
:
self
,
selector
:
#selector(
displayUpdate(_:)
)
)
displayLink
=
CADisplayLink
(
target
:
self
,
selector
:
#selector(
displayUpdate(_:)
)
)
displayLink
!.
add
(
to
:
RunLoop
.
main
,
forMode
:
RunLoopMode
(
rawValue
:
RunLoopMode
.
commonModes
.
rawValue
))
displayLink
!.
add
(
to
:
RunLoop
.
main
,
forMode
:
RunLoopMode
(
rawValue
:
RunLoopMode
.
commonModes
.
rawValue
))
...
...
Sources/Transition/MotionTransition+Complete.swift
View file @
601c787a
...
@@ -31,27 +31,6 @@ import UIKit
...
@@ -31,27 +31,6 @@ import UIKit
extension
MotionTransition
{
extension
MotionTransition
{
/**
/**
Complete the transition.
Complete the transition.
- Parameter after: A TimeInterval.
- Parameter isFinishing: A Boolean indicating if the transition
has completed.
*/
func
complete
(
after
:
TimeInterval
,
isFinishing
:
Bool
)
{
guard
[
MotionTransitionState
.
animating
,
.
starting
,
.
notified
]
.
contains
(
state
)
else
{
return
}
if
after
<=
1.0
/
120
{
complete
(
isFinishing
:
isFinishing
)
return
}
let
totalTime
=
after
/
(
isFinishing
?
max
((
1
-
progress
),
0.01
)
:
max
(
progress
,
0.01
))
progressRunner
.
start
(
timePassed
:
progress
*
totalTime
,
totalTime
:
totalTime
,
reverse
:
!
isFinishing
)
}
/**
Complete the transition.
- Parameter isFinishing: A Boolean indicating if the transition
- Parameter isFinishing: A Boolean indicating if the transition
has completed.
has completed.
*/
*/
...
...
Sources/Transition/MotionTransition.swift
View file @
601c787a
...
@@ -402,6 +402,27 @@ open class MotionTransition: NSObject {
...
@@ -402,6 +402,27 @@ open class MotionTransition: NSObject {
internal
override
init
()
{
internal
override
init
()
{
super
.
init
()
super
.
init
()
}
}
/**
Complete the transition.
- Parameter after: A TimeInterval.
- Parameter isFinishing: A Boolean indicating if the transition
has completed.
*/
func
complete
(
after
:
TimeInterval
,
isFinishing
:
Bool
)
{
guard
[
MotionTransitionState
.
animating
,
.
starting
,
.
notified
]
.
contains
(
state
)
else
{
return
}
if
after
<=
1.0
/
120
{
complete
(
isFinishing
:
isFinishing
)
return
}
let
duration
=
after
/
(
isFinishing
?
max
((
1
-
progress
),
0.01
)
:
max
(
progress
,
0.01
))
progressRunner
.
start
(
progress
:
progress
*
duration
,
duration
:
duration
,
isReversed
:
!
isFinishing
)
}
}
}
extension
MotionTransition
:
MotionProgressRunnerDelegate
{
extension
MotionTransition
:
MotionProgressRunnerDelegate
{
...
@@ -529,12 +550,12 @@ internal extension MotionTransition {
...
@@ -529,12 +550,12 @@ internal extension MotionTransition {
tvc
.
beginAppearanceTransition
(
true
,
animated
:
true
)
tvc
.
beginAppearanceTransition
(
true
,
animated
:
true
)
processForMotionDelegate
(
viewController
:
fvc
)
{
[
weak
self
]
in
processForMotionDelegate
(
viewController
:
fvc
)
{
[
weak
self
]
in
guard
let
s
=
self
else
{
guard
let
`
self
`
=
self
else
{
return
return
}
}
$0
.
motion
?(
motion
:
s
,
willStartTransitionTo
:
tvc
)
$0
.
motion
?(
motion
:
s
elf
,
willStartTransitionTo
:
tvc
)
$0
.
motionWillStartTransition
?(
motion
:
s
)
$0
.
motionWillStartTransition
?(
motion
:
s
elf
)
}
}
processForMotionDelegate
(
viewController
:
tvc
)
{
[
weak
self
]
in
processForMotionDelegate
(
viewController
:
tvc
)
{
[
weak
self
]
in
...
@@ -566,21 +587,21 @@ internal extension MotionTransition {
...
@@ -566,21 +587,21 @@ internal extension MotionTransition {
fvc
.
endAppearanceTransition
()
fvc
.
endAppearanceTransition
()
processForMotionDelegate
(
viewController
:
fvc
)
{
[
weak
self
]
in
processForMotionDelegate
(
viewController
:
fvc
)
{
[
weak
self
]
in
guard
let
s
=
self
else
{
guard
let
`
self
`
=
self
else
{
return
return
}
}
$0
.
motion
?(
motion
:
s
,
didEndTransitionTo
:
tvc
)
$0
.
motion
?(
motion
:
s
elf
,
didEndTransitionTo
:
tvc
)
$0
.
motionDidEndTransition
?(
motion
:
s
)
$0
.
motionDidEndTransition
?(
motion
:
s
elf
)
}
}
processForMotionDelegate
(
viewController
:
tvc
)
{
[
weak
self
]
in
processForMotionDelegate
(
viewController
:
tvc
)
{
[
weak
self
]
in
guard
let
s
=
self
else
{
guard
let
`
self
`
=
self
else
{
return
return
}
}
$0
.
motion
?(
motion
:
s
,
didEndTransitionFrom
:
fvc
)
$0
.
motion
?(
motion
:
s
elf
,
didEndTransitionFrom
:
fvc
)
$0
.
motionDidEndTransition
?(
motion
:
s
)
$0
.
motionDidEndTransition
?(
motion
:
s
elf
)
}
}
transitionContext
?
.
finishInteractiveTransition
()
transitionContext
?
.
finishInteractiveTransition
()
...
@@ -605,21 +626,21 @@ internal extension MotionTransition {
...
@@ -605,21 +626,21 @@ internal extension MotionTransition {
fvc
.
endAppearanceTransition
()
fvc
.
endAppearanceTransition
()
processForMotionDelegate
(
viewController
:
fvc
)
{
[
weak
self
]
in
processForMotionDelegate
(
viewController
:
fvc
)
{
[
weak
self
]
in
guard
let
s
=
self
else
{
guard
let
`
self
`
=
self
else
{
return
return
}
}
$0
.
motion
?(
motion
:
s
,
didCancelTransitionTo
:
tvc
)
$0
.
motion
?(
motion
:
s
elf
,
didCancelTransitionTo
:
tvc
)
$0
.
motionDidCancelTransition
?(
motion
:
s
)
$0
.
motionDidCancelTransition
?(
motion
:
s
elf
)
}
}
processForMotionDelegate
(
viewController
:
tvc
)
{
[
weak
self
]
in
processForMotionDelegate
(
viewController
:
tvc
)
{
[
weak
self
]
in
guard
let
s
=
self
else
{
guard
let
`
self
`
=
self
else
{
return
return
}
}
$0
.
motion
?(
motion
:
s
,
didCancelTransitionFrom
:
fvc
)
$0
.
motion
?(
motion
:
s
elf
,
didCancelTransitionFrom
:
fvc
)
$0
.
motionDidCancelTransition
?(
motion
:
s
)
$0
.
motionDidCancelTransition
?(
motion
:
s
elf
)
}
}
transitionContext
?
.
finishInteractiveTransition
()
transitionContext
?
.
finishInteractiveTransition
()
...
...
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