Skip to content
This repository was archived by the owner on Jan 5, 2020. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DKChainableAnimationKit.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DKChainableAnimationKit"
s.version = "1.5.0"
s.version = "1.6.0"
s.summary = "Chainable Animation in Swift"

s.description = <<-DESC
Expand Down
9 changes: 8 additions & 1 deletion DKChainableAnimationKit.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,9 @@
5287D66B1B1120E6006A9A84 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0630;
LastSwiftMigration = 0700;
LastSwiftUpdateCheck = 0700;
LastUpgradeCheck = 0700;
ORGANIZATIONNAME = DeltaX;
TargetAttributes = {
5287D6731B1120E6006A9A84 = {
Expand Down Expand Up @@ -301,6 +303,7 @@
CURRENT_PROJECT_VERSION = 1.3;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
Expand Down Expand Up @@ -378,6 +381,7 @@
INFOPLIST_FILE = DKChainableAnimationKit/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.draveness.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
Expand All @@ -393,6 +397,7 @@
INFOPLIST_FILE = DKChainableAnimationKit/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.draveness.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
Expand All @@ -411,6 +416,7 @@
);
INFOPLIST_FILE = DKChainableAnimationKitTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.draveness.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
Expand All @@ -424,6 +430,7 @@
);
INFOPLIST_FILE = DKChainableAnimationKitTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.draveness.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0630"
LastUpgradeVersion = "0710"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down Expand Up @@ -37,10 +37,10 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
Expand All @@ -62,15 +62,18 @@
ReferencedContainer = "container:DKChainableAnimationKit.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
Expand All @@ -85,10 +88,10 @@
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import UIKit

public extension DKChainableAnimationKit {

internal func makeAnchorFrom(#x: CGFloat, y: CGFloat) {
internal func makeAnchorFrom(x x: CGFloat, y: CGFloat) {
let anchorPoint = CGPoint(x: x, y: y)
func action(view: UIView) {
if CGPointEqualToPoint(anchorPoint, view.layer.anchorPoint) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public extension DKChainableAnimationKit {
public func makeBorderColor(color: UIColor) -> DKChainableAnimationKit {
self.addAnimationCalculationAction { (view: UIView) -> Void in
let borderColorAnimation = self.basicAnimationForKeyPath("borderColor")
borderColorAnimation.fromValue = UIColor(CGColor: view.layer.borderColor)
borderColorAnimation.fromValue = UIColor(CGColor: view.layer.borderColor!)
borderColorAnimation.toValue = color
self.addAnimationFromCalculationBlock(borderColorAnimation)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,11 @@ import Foundation
public extension DKChainableAnimationKit {

public func makeFrame(rect: CGRect) -> DKChainableAnimationKit {
return self.makeOrigin(rect.origin.x, rect.origin.y).makeBounds(rect)
return self.makeOrigin(rect.origin).makeSize(rect.size)
}

public func makeFrame(x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> DKChainableAnimationKit {
let rect = CGRect(x: x, y: y, width: width, height: height)
return self.makeOrigin(x, y).makeBounds(rect)
return self.makeFrame(CGRect(x: x, y: y, width: width, height: height))
}

public func makeBounds(rect: CGRect) -> DKChainableAnimationKit {
Expand All @@ -28,6 +27,10 @@ public extension DKChainableAnimationKit {
}


public func makeSize(size: CGSize) -> DKChainableAnimationKit {
return self.makeSize(size.width, size.height)
}

public func makeSize(width: CGFloat, _ height: CGFloat) -> DKChainableAnimationKit {

self.addAnimationCalculationAction { (view: UIView) -> Void in
Expand All @@ -38,13 +41,17 @@ public extension DKChainableAnimationKit {
}

self.addAnimationCompletionAction { (view: UIView) -> Void in
var bounds = CGRect(x: 0, y: 0, width: width, height: height)
view.layer.bounds = bounds
view.bounds = bounds
view.layer.bounds.size = CGSize(width: width, height: height)
view.bounds.size = CGSize(width: width, height: height)
}
return self
}

public func makeOrigin(origin: CGPoint) -> DKChainableAnimationKit {
return self.makeOrigin(origin.x, origin.y)

}

public func makeOrigin(x: CGFloat, _ y: CGFloat) -> DKChainableAnimationKit {
self.addAnimationCalculationAction { (view: UIView) -> Void in
let positionAnimation = self.basicAnimationForKeyPath("position")
Expand All @@ -59,7 +66,10 @@ public extension DKChainableAnimationKit {
view.layer.position = newPosition
}
return self
}

public func makeCenter(center: CGPoint) -> DKChainableAnimationKit {
return self.makeCenter(center.x, center.y)
}

public func makeCenter(x: CGFloat, _ y: CGFloat) -> DKChainableAnimationKit {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,14 @@ extension DKChainableAnimationKit {
self.addAnimationCalculationAction { (view: UIView) -> Void in
let transformAnimation = self.basicAnimationForKeyPath("transform")
var transform = view.layer.transform
transform = CATransform3DTranslate(transform, scale, scale, 1)
transform = CATransform3DScale(transform, scale, scale, 1)
transformAnimation.fromValue = NSValue(CATransform3D: view.layer.transform)
transformAnimation.toValue = NSValue(CATransform3D: transform)
self.addAnimationFromCalculationBlock(transformAnimation)
}
self.addAnimationCompletionAction { (view: UIView) -> Void in
var transform = view.layer.transform
transform = CATransform3DTranslate(transform, scale, scale, 1)
transform = CATransform3DScale(transform, scale, scale, 1)
view.layer.transform = transform
}
return self
Expand All @@ -116,14 +116,14 @@ extension DKChainableAnimationKit {
self.addAnimationCalculationAction { (view: UIView) -> Void in
let transformAnimation = self.basicAnimationForKeyPath("transform")
var transform = view.layer.transform
transform = CATransform3DTranslate(transform, scaleX, 1, 1)
transform = CATransform3DScale(transform, scaleX, 1, 1)
transformAnimation.fromValue = NSValue(CATransform3D: view.layer.transform)
transformAnimation.toValue = NSValue(CATransform3D: transform)
self.addAnimationFromCalculationBlock(transformAnimation)
}
self.addAnimationCompletionAction { (view: UIView) -> Void in
var transform = view.layer.transform
transform = CATransform3DTranslate(transform, scaleX, 1, 1)
transform = CATransform3DScale(transform, scaleX, 1, 1)
view.layer.transform = transform
}
return self
Expand All @@ -133,14 +133,14 @@ extension DKChainableAnimationKit {
self.addAnimationCalculationAction { (view: UIView) -> Void in
let transformAnimation = self.basicAnimationForKeyPath("transform")
var transform = view.layer.transform
transform = CATransform3DTranslate(transform, 1, scaleY, 1)
transform = CATransform3DScale(transform, 1, scaleY, 1)
transformAnimation.fromValue = NSValue(CATransform3D: view.layer.transform)
transformAnimation.toValue = NSValue(CATransform3D: transform)
self.addAnimationFromCalculationBlock(transformAnimation)
}
self.addAnimationCompletionAction { (view: UIView) -> Void in
var transform = view.layer.transform
transform = CATransform3DTranslate(transform, 1, scaleY, 1)
transform = CATransform3DScale(transform, 1, scaleY, 1)
view.layer.transform = transform
}
return self
Expand Down
4 changes: 2 additions & 2 deletions DKChainableAnimationKit/Classes/DKChainableAnimationKit.swift
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,14 @@ public class DKChainableAnimationKit {
return animation
}

internal func newPositionFrom(#newOrigin: CGPoint) -> CGPoint {
internal func newPositionFrom(newOrigin newOrigin: CGPoint) -> CGPoint {
let anchor = self.view.layer.anchorPoint
let size = self.view.bounds.size
let newPosition = CGPoint(x: newOrigin.x + anchor.x * size.width, y: newOrigin.y + anchor.y * size.height)
return newPosition
}

internal func newPositionFrom(#newCenter: CGPoint) -> CGPoint {
internal func newPositionFrom(newCenter newCenter: CGPoint) -> CGPoint {
let anchor = self.view.layer.anchorPoint
let size = self.view.bounds.size
let newPosition = CGPoint(x: newCenter.x + (anchor.x - 0.5) * size.width, y: newCenter.y + (anchor.y - 0.5) * size.height)
Expand Down
38 changes: 23 additions & 15 deletions DKChainableAnimationKit/Classes/DKKeyFrameAnimation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,18 @@ public class DKKeyFrameAnimation: CAKeyframeAnimation {
if valueIsKindOf(NSNumber) {
self.values = self.valueArrayFor(startValue: CGFloat(fromValue.floatValue), endValue: CGFloat(toValue.floatValue)) as [AnyObject]
} else if valueIsKindOf(UIColor) {
let fromColor = self.fromValue.CGColor
let toColor = self.toValue.CGColor
let fromComponents = CGColorGetComponents(fromColor)
let toComponents = CGColorGetComponents(toColor)
var fromColor = self.fromValue
var toColor = self.toValue
if CGColorGetNumberOfComponents(fromColor.CGColor) == 2 {
let fromComponents = CGColorGetComponents(fromColor.CGColor)
fromColor = UIColor(red: fromComponents[0], green: fromComponents[0], blue: fromComponents[0], alpha: fromComponents[1])
}
if CGColorGetNumberOfComponents(toColor.CGColor) == 2 {
let toComponents = CGColorGetComponents(toColor.CGColor)
toColor = UIColor(red: toComponents[0], green: toComponents[0], blue: toComponents[0], alpha: toComponents[1])
}
let fromComponents = CGColorGetComponents(fromColor.CGColor)
let toComponents = CGColorGetComponents(toColor.CGColor)

let redValues = self.valueArrayFor(startValue: fromComponents[0], endValue: toComponents[0]) as! [CGFloat]
let greenValues = self.valueArrayFor(startValue: fromComponents[1], endValue: toComponents[1]) as! [CGFloat]
Expand All @@ -48,8 +56,8 @@ public class DKKeyFrameAnimation: CAKeyframeAnimation {
self.fromValue.objCType
let valueType: NSString! = NSString(CString: self.fromValue.objCType, encoding: 1)
if valueType.containsString("CGRect") {
let fromRect = self.fromValue.CGRectValue()
let toRect = self.toValue.CGRectValue()
let fromRect = self.fromValue.CGRectValue
let toRect = self.toValue.CGRectValue

let xValues = self.valueArrayFor(startValue: fromRect.origin.x, endValue: toRect.origin.x) as! [CGFloat]
let yValues = self.valueArrayFor(startValue: fromRect.origin.y, endValue: toRect.origin.x) as! [CGFloat]
Expand All @@ -59,8 +67,8 @@ public class DKKeyFrameAnimation: CAKeyframeAnimation {
self.values = self.rectArrayFrom(xValues: xValues, yValues: yValues, widthValues: widthValues, heightValues: heightValues) as [AnyObject]

} else if valueType.containsString("CGPoint") {
let fromPoint = self.fromValue.CGPointValue()
let toPoint = self.toValue.CGPointValue()
let fromPoint = self.fromValue.CGPointValue
let toPoint = self.toValue.CGPointValue
let path = self.createPathFromXYValues(self.valueArrayFor(startValue: fromPoint.x, endValue: toPoint.x), yValues: self.valueArrayFor(startValue: fromPoint.y, endValue: toPoint.y))
self.path = path
} else if valueType.containsString("CGSize") {
Expand Down Expand Up @@ -101,12 +109,12 @@ public class DKKeyFrameAnimation: CAKeyframeAnimation {
}

private func createTransformArrayFrom(
#m11: NSArray, m12: NSArray, m13: NSArray, m14: NSArray,
m11 m11: NSArray, m12: NSArray, m13: NSArray, m14: NSArray,
m21: NSArray, m22: NSArray, m23: NSArray, m24: NSArray,
m31: NSArray, m32: NSArray, m33: NSArray, m34: NSArray,
m41: NSArray, m42: NSArray, m43: NSArray, m44: NSArray) -> NSArray {
let numberOfTransforms = m11.count;
var values = NSMutableArray(capacity: numberOfTransforms)
let values = NSMutableArray(capacity: numberOfTransforms)
var value: CATransform3D!
for (var i = 1; i < numberOfTransforms; i++) {
value = CATransform3DIdentity;
Expand Down Expand Up @@ -155,9 +163,9 @@ public class DKKeyFrameAnimation: CAKeyframeAnimation {
return self.fromValue.isKindOfClass(klass) && self.toValue.isKindOfClass(klass)
}

private func rectArrayFrom(#xValues: [CGFloat], yValues: [CGFloat], widthValues: [CGFloat], heightValues: [CGFloat]) -> NSArray {
private func rectArrayFrom(xValues xValues: [CGFloat], yValues: [CGFloat], widthValues: [CGFloat], heightValues: [CGFloat]) -> NSArray {
let numberOfRects = xValues.count
var values: NSMutableArray = []
let values: NSMutableArray = []
var value: NSValue

for i in 1..<numberOfRects {
Expand All @@ -168,7 +176,7 @@ public class DKKeyFrameAnimation: CAKeyframeAnimation {

}

private func colorArrayFrom(#redValues: [CGFloat], greenValues: [CGFloat], blueValues: [CGFloat], alphaValues: [CGFloat]) -> [CGColor] {
private func colorArrayFrom(redValues redValues: [CGFloat], greenValues: [CGFloat], blueValues: [CGFloat], alphaValues: [CGFloat]) -> [CGColor] {
let numberOfColors = redValues.count
var values: [CGColor] = []
var value: CGColor!
Expand All @@ -180,7 +188,7 @@ public class DKKeyFrameAnimation: CAKeyframeAnimation {
return values
}

private func valueArrayFor(#startValue: CGFloat, endValue: CGFloat) -> NSArray {
private func valueArrayFor(startValue startValue: CGFloat, endValue: CGFloat) -> NSArray {
let startValue = Double(startValue)
let endValue = Double(endValue)

Expand All @@ -192,7 +200,7 @@ public class DKKeyFrameAnimation: CAKeyframeAnimation {

var valueArray: [Double] = []

for i in 0..<steps {
for _ in 0..<steps {
v = self.functionBlock(self.duration * progress * 1000, 0, 1, self.duration * 1000);
value = startValue + v * (endValue - startValue);

Expand Down
Loading