Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
Material
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
Material
Commits
3fe5ad8d
Unverified
Commit
3fe5ad8d
authored
Jan 13, 2017
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
development: added zPosition to MotionAnimation
parent
66a43476
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
83 additions
and
66 deletions
+83
-66
Sources/iOS/Motion.swift
+0
-40
Sources/iOS/MotionAnimation.swift
+43
-26
Sources/iOS/MotionTransition.swift
+40
-0
No files found.
Sources/iOS/Motion.swift
View file @
3fe5ad8d
...
...
@@ -30,46 +30,6 @@
import
UIKit
/// A memory reference to the MotionIdentifier instance for UIView extensions.
fileprivate
var
MotionIdentifierKey
:
UInt8
=
0
fileprivate
struct
MotionTransitionItem
{
fileprivate
var
identifier
:
String
fileprivate
var
animations
:
[
MotionAnimation
]
}
extension
UIView
{
/// MaterialLayer Reference.
fileprivate
var
motionTransitionItem
:
MotionTransitionItem
{
get
{
return
AssociatedObject
(
base
:
self
,
key
:
&
MotionIdentifierKey
)
{
return
MotionTransitionItem
(
identifier
:
""
,
animations
:
[])
}
}
set
(
value
)
{
AssociateObject
(
base
:
self
,
key
:
&
MotionIdentifierKey
,
value
:
value
)
}
}
open
var
motionIdentifier
:
String
{
get
{
return
motionTransitionItem
.
identifier
}
set
(
value
)
{
motionTransitionItem
.
identifier
=
value
}
}
open
var
motionAnimations
:
[
MotionAnimation
]
{
get
{
return
motionTransitionItem
.
animations
}
set
(
value
)
{
motionTransitionItem
.
animations
=
value
}
}
}
@objc(MotionAnimationFillMode)
public
enum
MotionAnimationFillMode
:
Int
{
case
forwards
...
...
Sources/iOS/MotionAnimation.swift
View file @
3fe5ad8d
...
...
@@ -49,6 +49,7 @@ public enum MotionAnimationKeyPath: String {
case
position
case
shadowPath
case
opacity
case
zPosition
}
public
enum
MotionAnimation
{
...
...
@@ -75,6 +76,7 @@ public enum MotionAnimation {
case
position
(
x
:
CGFloat
,
y
:
CGFloat
)
case
shadow
(
path
:
CGPath
)
case
fade
(
CGFloat
)
case
zPosition
(
Int
)
}
extension
CALayer
{
...
...
@@ -216,6 +218,10 @@ extension CALayer {
let
fade
=
Motion
.
fade
(
opacity
:
opacity
)
fade
.
fromValue
=
value
(
forKey
:
MotionAnimationKeyPath
.
opacity
.
rawValue
)
??
NSNumber
(
floatLiteral
:
1
)
a
.
append
(
fade
)
case
let
.
zPosition
(
index
):
let
zPosition
=
Motion
.
zPosition
(
index
:
index
)
zPosition
.
fromValue
=
value
(
forKey
:
MotionAnimationKeyPath
.
zPosition
.
rawValue
)
??
NSNumber
(
integerLiteral
:
0
)
a
.
append
(
zPosition
)
}
}
...
...
@@ -362,17 +368,6 @@ extension CABasicAnimation {
extension
Motion
{
/**
Creates a CABasicAnimation for the opacity key path.
- Parameter opacity: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
fade
(
opacity
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
opacity
)
animation
.
toValue
=
NSNumber
(
floatLiteral
:
Double
(
opacity
))
return
animation
}
/**
Creates a CABasicAnimation for the backgroundColor key path.
- Parameter color: A UIColor.
- Returns: A CABasicAnimation.
...
...
@@ -454,7 +449,7 @@ extension Motion {
- Parameter rotations: An optional CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
spin
(
rotations
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
spin
(
rotations
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
rotation
)
animation
.
toValue
=
(
CGFloat
(
M_PI
*
2
)
*
rotations
)
as
NSNumber
return
animation
...
...
@@ -465,7 +460,7 @@ extension Motion {
- Parameter rotations: An optional CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
spinX
(
rotations
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
spinX
(
rotations
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
rotationX
)
animation
.
toValue
=
(
CGFloat
(
M_PI
*
2
)
*
rotations
)
as
NSNumber
return
animation
...
...
@@ -476,7 +471,7 @@ extension Motion {
- Parameter rotations: An optional CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
spinY
(
rotations
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
spinY
(
rotations
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
rotationY
)
animation
.
toValue
=
(
CGFloat
(
M_PI
*
2
)
*
rotations
)
as
NSNumber
return
animation
...
...
@@ -487,7 +482,7 @@ extension Motion {
- Parameter rotations: An optional CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
spinZ
(
rotations
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
spinZ
(
rotations
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
rotationZ
)
animation
.
toValue
=
(
CGFloat
(
M_PI
*
2
)
*
rotations
)
as
NSNumber
return
animation
...
...
@@ -498,7 +493,7 @@ extension Motion {
- Parameter to scale: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
scale
(
to
scale
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
scale
(
to
scale
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
scale
)
animation
.
toValue
=
scale
as
NSNumber
return
animation
...
...
@@ -509,7 +504,7 @@ extension Motion {
- Parameter to scale: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
scaleX
(
to
scale
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
scaleX
(
to
scale
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
scaleX
)
animation
.
toValue
=
scale
as
NSNumber
return
animation
...
...
@@ -520,7 +515,7 @@ extension Motion {
- Parameter to scale: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
scaleY
(
to
scale
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
scaleY
(
to
scale
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
scaleY
)
animation
.
toValue
=
scale
as
NSNumber
return
animation
...
...
@@ -531,7 +526,7 @@ extension Motion {
- Parameter to scale: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
scaleZ
(
to
scale
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
scaleZ
(
to
scale
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
scaleZ
)
animation
.
toValue
=
scale
as
NSNumber
return
animation
...
...
@@ -542,7 +537,7 @@ extension Motion {
- Parameter point: A CGPoint.
- Returns: A CABasicAnimation.
*/
public
static
func
translate
(
to
point
:
CGPoint
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
translate
(
to
point
:
CGPoint
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
translation
)
animation
.
toValue
=
NSValue
(
cgPoint
:
point
)
return
animation
...
...
@@ -553,7 +548,7 @@ extension Motion {
- Parameter to translation: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
translateX
(
to
translation
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
translateX
(
to
translation
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
translationX
)
animation
.
toValue
=
translation
as
NSNumber
return
animation
...
...
@@ -564,7 +559,7 @@ extension Motion {
- Parameter to translation: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
translateY
(
to
translation
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
translateY
(
to
translation
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
translationY
)
animation
.
toValue
=
translation
as
NSNumber
return
animation
...
...
@@ -575,7 +570,7 @@ extension Motion {
- Parameter to translation: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
translateZ
(
to
translation
:
CGFloat
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
translateZ
(
to
translation
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
translationZ
)
animation
.
toValue
=
translation
as
NSNumber
return
animation
...
...
@@ -586,7 +581,7 @@ extension Motion {
- Parameter to point: A CGPoint.
- Returns: A CABasicAnimation.
*/
public
static
func
position
(
to
point
:
CGPoint
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
position
(
to
point
:
CGPoint
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
position
)
animation
.
toValue
=
NSValue
(
cgPoint
:
point
)
return
animation
...
...
@@ -594,12 +589,34 @@ extension Motion {
/**
Creates a CABasicAnimation for the shadowPath key path.
- Parameter
to
path: A CGPath.
- Parameter path: A CGPath.
- Returns: A CABasicAnimation.
*/
public
static
func
shadow
(
path
:
CGPath
,
duration
:
CFTimeInterval
?
=
nil
)
->
CABasicAnimation
{
public
static
func
shadow
(
path
:
CGPath
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
shadowPath
)
animation
.
toValue
=
path
return
animation
}
/**
Creates a CABasicAnimation for the opacity key path.
- Parameter opacity: A CGFloat.
- Returns: A CABasicAnimation.
*/
public
static
func
fade
(
opacity
:
CGFloat
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
opacity
)
animation
.
toValue
=
NSNumber
(
floatLiteral
:
Double
(
opacity
))
return
animation
}
/**
Creates a CABasicaAnimation for the zPosition key path.
- Parameter index: An Int.
- Returns: A CABasicAnimation.
*/
public
static
func
zPosition
(
index
:
Int
)
->
CABasicAnimation
{
let
animation
=
CABasicAnimation
(
keyPath
:
.
zPosition
)
animation
.
toValue
=
NSNumber
(
integerLiteral
:
index
)
return
animation
}
}
Sources/iOS/MotionTransition.swift
View file @
3fe5ad8d
...
...
@@ -30,6 +30,46 @@
import
UIKit
/// A memory reference to the MotionIdentifier instance for UIView extensions.
fileprivate
var
MotionIdentifierKey
:
UInt8
=
0
fileprivate
struct
MotionTransitionItem
{
fileprivate
var
identifier
:
String
fileprivate
var
animations
:
[
MotionAnimation
]
}
extension
UIView
{
/// MaterialLayer Reference.
fileprivate
var
motionTransitionItem
:
MotionTransitionItem
{
get
{
return
AssociatedObject
(
base
:
self
,
key
:
&
MotionIdentifierKey
)
{
return
MotionTransitionItem
(
identifier
:
""
,
animations
:
[])
}
}
set
(
value
)
{
AssociateObject
(
base
:
self
,
key
:
&
MotionIdentifierKey
,
value
:
value
)
}
}
open
var
motionIdentifier
:
String
{
get
{
return
motionTransitionItem
.
identifier
}
set
(
value
)
{
motionTransitionItem
.
identifier
=
value
}
}
open
var
motionAnimations
:
[
MotionAnimation
]
{
get
{
return
motionTransitionItem
.
animations
}
set
(
value
)
{
motionTransitionItem
.
animations
=
value
}
}
}
@objc(MotionTransition)
public
enum
MotionTransition
:
Int
{
case
none
...
...
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