Commit 1fbf4870 by Daniel Dahan

updated animation for SideNavigationViewController

parent 44b579be
...@@ -78,6 +78,7 @@ public struct MaterialAnimation { ...@@ -78,6 +78,7 @@ public struct MaterialAnimation {
group.removedOnCompletion = false group.removedOnCompletion = false
group.animations = animations group.animations = animations
group.duration = duration group.duration = duration
group.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
return group return group
} }
} }
...@@ -28,6 +28,7 @@ public extension MaterialAnimation { ...@@ -28,6 +28,7 @@ public extension MaterialAnimation {
animation.toValue = color.CGColor animation.toValue = color.CGColor
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -43,6 +44,7 @@ public extension MaterialAnimation { ...@@ -43,6 +44,7 @@ public extension MaterialAnimation {
animation.toValue = radius animation.toValue = radius
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -58,6 +60,7 @@ public extension MaterialAnimation { ...@@ -58,6 +60,7 @@ public extension MaterialAnimation {
animation.toValue = NSValue(CATransform3D: transform) animation.toValue = NSValue(CATransform3D: transform)
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -73,6 +76,7 @@ public extension MaterialAnimation { ...@@ -73,6 +76,7 @@ public extension MaterialAnimation {
animation.byValue = (M_PI * 2 * rotations) as NSNumber animation.byValue = (M_PI * 2 * rotations) as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -88,6 +92,7 @@ public extension MaterialAnimation { ...@@ -88,6 +92,7 @@ public extension MaterialAnimation {
animation.byValue = (M_PI_4 * rotations) as NSNumber animation.byValue = (M_PI_4 * rotations) as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -103,6 +108,7 @@ public extension MaterialAnimation { ...@@ -103,6 +108,7 @@ public extension MaterialAnimation {
animation.byValue = (M_PI_4 * rotations) as NSNumber animation.byValue = (M_PI_4 * rotations) as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -118,6 +124,7 @@ public extension MaterialAnimation { ...@@ -118,6 +124,7 @@ public extension MaterialAnimation {
animation.byValue = (M_PI_4 * rotations) as NSNumber animation.byValue = (M_PI_4 * rotations) as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -133,6 +140,7 @@ public extension MaterialAnimation { ...@@ -133,6 +140,7 @@ public extension MaterialAnimation {
animation.toValue = scale as NSNumber animation.toValue = scale as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -148,6 +156,7 @@ public extension MaterialAnimation { ...@@ -148,6 +156,7 @@ public extension MaterialAnimation {
animation.toValue = scale as NSNumber animation.toValue = scale as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -163,6 +172,7 @@ public extension MaterialAnimation { ...@@ -163,6 +172,7 @@ public extension MaterialAnimation {
animation.toValue = scale as NSNumber animation.toValue = scale as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -178,6 +188,7 @@ public extension MaterialAnimation { ...@@ -178,6 +188,7 @@ public extension MaterialAnimation {
animation.toValue = scale as NSNumber animation.toValue = scale as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -193,6 +204,7 @@ public extension MaterialAnimation { ...@@ -193,6 +204,7 @@ public extension MaterialAnimation {
animation.toValue = NSValue(CGSize: translation) animation.toValue = NSValue(CGSize: translation)
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -208,6 +220,7 @@ public extension MaterialAnimation { ...@@ -208,6 +220,7 @@ public extension MaterialAnimation {
animation.toValue = translation as NSNumber animation.toValue = translation as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -223,6 +236,7 @@ public extension MaterialAnimation { ...@@ -223,6 +236,7 @@ public extension MaterialAnimation {
animation.toValue = translation as NSNumber animation.toValue = translation as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -238,6 +252,7 @@ public extension MaterialAnimation { ...@@ -238,6 +252,7 @@ public extension MaterialAnimation {
animation.toValue = translation as NSNumber animation.toValue = translation as NSNumber
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
...@@ -253,6 +268,7 @@ public extension MaterialAnimation { ...@@ -253,6 +268,7 @@ public extension MaterialAnimation {
animation.toValue = NSValue(CGPoint: point) animation.toValue = NSValue(CGPoint: point)
animation.fillMode = MaterialAnimationFillModeToValue(.Forwards) animation.fillMode = MaterialAnimationFillModeToValue(.Forwards)
animation.removedOnCompletion = false animation.removedOnCompletion = false
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
if let d = duration { if let d = duration {
animation.duration = d animation.duration = d
} }
......
...@@ -164,9 +164,7 @@ public class MaterialPanCollectionViewCell : MaterialPulseCollectionViewCell, UI ...@@ -164,9 +164,7 @@ public class MaterialPanCollectionViewCell : MaterialPulseCollectionViewCell, UI
revealed = false revealed = false
// snap back // snap back
let a: CABasicAnimation = MaterialAnimation.position(CGPointMake(width / 2, y + height / 2), duration: 0.25) animation(MaterialAnimation.position(CGPointMake(width / 2, y + height / 2), duration: 0.25))
a.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
animation(a)
if leftOnDragRelease { if leftOnDragRelease {
(delegate as? MaterialPanCollectionViewCellDelegate)?.materialCollectionViewCellDidCloseLeftLayer?(self) (delegate as? MaterialPanCollectionViewCellDelegate)?.materialCollectionViewCellDidCloseLeftLayer?(self)
......
...@@ -179,24 +179,25 @@ public class SideNavigationViewController: UIViewController, UIGestureRecognizer ...@@ -179,24 +179,25 @@ public class SideNavigationViewController: UIViewController, UIGestureRecognizer
layoutBackdropLayer() layoutBackdropLayer()
if let v: MaterialView = leftView { if let v: MaterialView = leftView {
leftViewController?.view.frame = v.bounds leftViewController?.view.frame = v.bounds
leftViewController?.view.center = CGPointMake(v.width / 2, v.height / 2)
} }
} }
/** /**
:name: setLeftViewControllerWidth :name: setLeftViewControllerWidth
*/ */
public func setLeftViewControllerWidth(width: CGFloat, hidden: Bool, animated: Bool, duration: CFTimeInterval = 0.25) { public func setLeftViewControllerWidth(width: CGFloat, hidden: Bool, animated: Bool) {
leftViewControllerWidth = width leftViewControllerWidth = width
MaterialAnimation.animationDisabled({ let w: CGFloat = (hidden ? -width : width) / 2
self.leftView!.width = width
})
if animated { if animated {
leftView!.animation(MaterialAnimation.position(CGPointMake((hidden ? -width : width) / 2, leftView!.position.y), duration: duration)) self.leftView!.width = width
self.leftView!.position.x = w
} else { } else {
MaterialAnimation.animationDisabled({ MaterialAnimation.animationDisabled({
self.leftView!.position.x = (hidden ? -width : width) / 2 self.leftView!.width = width
self.leftView!.position.x = w
}) })
} }
} }
...@@ -283,10 +284,11 @@ public class SideNavigationViewController: UIViewController, UIGestureRecognizer ...@@ -283,10 +284,11 @@ public class SideNavigationViewController: UIViewController, UIGestureRecognizer
internal func prepareLeftView() { internal func prepareLeftView() {
// container // container
leftView = MaterialView(frame: CGRectMake(0, 0, leftViewControllerWidth, view.frame.height)) leftView = MaterialView(frame: CGRectMake(0, 0, leftViewControllerWidth, view.frame.height))
leftView!.backgroundColor = MaterialColor.clear
view.addSubview(leftView!) view.addSubview(leftView!)
MaterialAnimation.animationDisabled({ MaterialAnimation.animationDisabled({
self.leftView!.position = CGPointMake(-self.leftView!.width / 2, self.leftView!.height / 2) self.leftView!.position.x = -self.leftViewControllerWidth / 2
self.leftView!.zPosition = 1000 self.leftView!.zPosition = 1000
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment