• Stars
    star
    368
  • Rank 115,958 (Top 3 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CHAnimation is a project used to demonstrate how to write your own animation engine, inspired by Facebook Pop.

CHAnimation

CHAnimation is a project used to demonstrate how to write your own animation engine, inspired by Facebook Pop, with only 600 lines of Objective-C you can understand.

You can also use this project to help learning Facebook Pop.

Requirements

CHAnimation requires Xcode 5, targeting either iOS 5.0 and above, ARC-enabled.

Types

Unlike Facebook Pop, CHAnimation supports only one animation type, that is linear animation. The main purpose of this project is to help developer understand how an animation engine works, so I tried my best to keep the code small and clean. I think if you finished reading the code of CHAnimation, you can add more timingFunction as you want.

Currently, CHAnimation supports CGSize, CGPoint and NSNumber as animated values, you can add more types if you want.

How to use

CHAnimation adopts the Core Animation explicit animation programming model, the interfaces are almost the same:

#import "CHAnimation.h"

CHAnimation *animation = [CHAnimation new];
animation.duration = 0.4;

animation.writeBlock = ^(id obj, id value) {
    button.center = [value CGPointValue];
};

animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(70, 70)];
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(170, 170)];

[button ch_addAnimation:animation forKey:@"animation"]; 

Resources

A collection of links to external resources may help you to understand the code:

How it looks

![CHAnimation] (https://raw.github.com/cyndibaby905/CHAnimation/master/CHAnimation.gif)

Lincense

CHAnimation is available under the MIT license. See the LICENSE file for more info.

More Repositories

1

TwitterCover

TwitterCover is a parallax top view with real time blur effect to any UIScrollView, inspired by Twitter for iOS.
Objective-C
1,164
star
2

TumblrMenu

Tumblr iOS app like menu view completely created using core animation.
Objective-C
426
star
3

TwitterCover-Android

The Android version of https://github.com/cyndibaby905/TwitterCover
Java
404
star
4

GIFRefreshControl

"Twitter music" and "Yahoo! Weather" like pull-to-refresh control created using GIF.
Objective-C
293
star
5

flutter_core_demo

本仓库包含了极客时间专栏《Flutter核心技术与实战》的全部代码示例
261
star
6

13_listview_demo

Dart
16
star
7

11_Flutter_lifecycle

Dart
14
star
8

08_Dart_Sample

A Dart Sample
Dart
13
star
9

31_flutter_push_plugin

Dart
9
star
10

30_provider_demo

Dart
7
star
11

44_flutter_module_demo

Dart
7
star
12

20_data_transfer

Dart
7
star
13

27_native_view

Dart
6
star
14

34_multi_env

Dart
6
star
15

19_gesture_demo

Dart
6
star
16

39_crashy_demo

Dart
5
star
17

22_app_animation

Dart
5
star
18

15_custom_ui_demo

Dart
5
star
19

28_module_page

Dart
5
star
20

40_peformance_demo

Dart
5
star
21

Translator

A translator using YQL
Python
4
star
22

23_dart_async

Dart
4
star
23

21_router_demo

Dart
3
star
24

Translator_android

Translator for android
Python
3
star
25

44_flutter_plugin_network

Dart
3
star
26

39_flutter_crash_plugin

Dart
2
star
27

25_data_persistence

Dart
2
star
28

28_iOSDemo

Objective-C
2
star
29

28_AndroidDemo

Java
2
star
30

44_iOSDemo

Objective-C
2
star
31

31_flutter_push_demo

Dart
2
star
32

44_AndroidDemo

Java
2
star
33

26_native_method

Dart
1
star
34

32_i18n_demo

Dart
1
star
35

33_multi_screen_demo

Dart
1
star
36

29_flutter_module_page

Dart
1
star
37

29_android_hybrid_demo

Java
1
star
38

38_test_app

Dart
1
star
39

29_ios_hybrid_demo

Objective-C
1
star