TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | Apache 2 |
ReleasedLast Release | Dec 2014 |
Maintained by Dalton Cherry.
A collection of animations for iOS Simply, just add water! DCAnimationKit is a category on UIView to make animations easy to perform.
All our examples will use this as a base.
self.moveLabel = [[UILabel alloc] initWithFrame:CGRectMake(80, 85, 200, 100)];
self.moveLabel.backgroundColor = [UIColor clearColor];
self.moveLabel.text = NSLocalizedString(@"Animate!", nil);
self.moveLabel.font = [UIFont systemFontOfSize:36];
[self.moveLabel sizeToFit];
[self.view addSubview:self.moveLabel];
self.moveView = [[UIView alloc] initWithFrame:CGRectMake(40, 165, 200, 100)];
self.moveView.backgroundColor = [UIColor orangeColor];
[self.view addSubview:self.moveView];
our method to run tada.
[self.moveView tada:NULL];
[self.moveLabel tada:NULL];
our method to run bounce.
[self.moveView bounce:NULL];
[self.moveLabel bounce:NULL];
our method to run pulse.
[self.moveView pulse:NULL];
[self.moveLabel pulse:NULL];
our method to run shake.
[self.moveView shake:NULL];
[self.moveLabel shake:NULL];
our method to run swing.
[self.moveView swing:NULL];
[self.moveLabel swing:NULL];
Intros have a slight difference from the base code. We simple remove these 2 lines:
//[self.view addSubview:self.moveLabel];
//[self.view addSubview:self.moveView];
This lines will be added to the view once they snap in.
our method to run the snap in.
[self.moveLabel snapIntoView:self.view direction:DCAnimationDirectionTop];
[self.moveView snapIntoView:self.view direction:DCAnimationDirectionLeft];
our method to run the bounce in.
[self.moveLabel bounceIntoView:self.view direction:DCAnimationDirectionTop];
[self.moveView bounceIntoView:self.view direction:DCAnimationDirectionLeft];
our method to run the expand.
[self.moveLabel expandIntoView:self.view finished:NULL];
[self.moveView expandIntoView:self.view finished:NULL];
our method to run the compress.
[self.moveLabel expandIntoView:NULL];
[self.moveView expandIntoView:NULL];
our method to run the hinge.
[self.moveLabel hinge:NULL];
[self.moveView hinge:NULL];
our method to run the drop.
[self.moveLabel drop:NULL];
[self.moveView drop:NULL];
To round off our fantastic animations, DCAnimationKit also simplifies doing ordinary frame manipulation.
UIView *baseView = [[UIView alloc] initWithFrame:CGRectMake(40, 85, 50, 50)];
baseView.backgroundColor = [UIColor grayColor];
[self.view addSubview:baseView];
self.moveView = [[UIView alloc] initWithFrame:baseView.frame];
self.moveView.backgroundColor = [UIColor redColor];
[self.view addSubview:self.moveView];
our code to move around.
CGFloat distance = 80;
__weak id weakSelf = self.moveView;
[weakSelf moveX:distance finished:^{
[weakSelf moveY:distance finished:^{
[weakSelf moveX:-distance finished:^{
[weakSelf moveY:-distance finished:^{
}];
}];
}];
}];
We can also set the view's origin to a specific value as well.
__weak id weakSelf = self.moveView;
[weakSelf setX:200 finished:^{
[weakSelf setY:200 finished:^{
[weakSelf setX:40 finished:^{
[weakSelf setY:85 finished:^{
}];
}];
}];
}];
We can even slide to a specific point (there is a move as well!).
[self.moveView movePoint:CGPointMake(100, 100) finished:NULL];
our code to rotate (there is a move rotation as well).
__weak id weakSelf = self.moveView;
[weakSelf setRotation:45 duration:.35 finished:^{
[weakSelf setRotation:0 duration:.35 finished:^{
}];
}];
The recommended approach for installing DCAnimationKit is via the CocoaPods package manager, as it provides flexible dependency management and dead simple installation.
via CocoaPods
Install CocoaPods if not already available:
$ [sudo] gem install cocoapods
$ pod setup
Change to the directory of your Xcode project, and Create and Edit your Podfile and add DCAnimationKit:
$ cd /path/to/MyProject
$ touch Podfile
$ edit Podfile
platform :ios, '7.0'
pod 'DCAnimationKit'
Install into your project:
$ pod install
Open your project in Xcode from the .xcworkspace file (not the usual project file)
DCAnimationKit requires at least iOS 7 or above.
DCAnimationKit is license under the Apache License.