├── .gitignore ├── A guide to iOS animation_logo v1.0.png ├── A guide to iOS animation_logo v2.0.png ├── LICENSE ├── Objective-C Version ├── AnimatedCircleDemo │ ├── AnimatedCircleDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── AnimatedCircleDemo.xcscheme │ │ │ └── xcschememanagement.plist │ ├── AnimatedCircleDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── CircleView │ │ │ ├── CircleLayer.h │ │ │ ├── CircleLayer.m │ │ │ ├── CircleView.h │ │ │ └── CircleView.m │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ └── AnimatedCircleDemoTests │ │ ├── AnimatedCircleDemoTests.m │ │ └── Info.plist ├── AnimatedCurveDemo │ ├── AnimatedCurveDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── AnimatedCurveDemo.xcscheme │ │ │ └── xcschememanagement.plist │ ├── AnimatedCurveDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── CurveLayer │ │ │ ├── CurveLayer.h │ │ │ └── CurveLayer.m │ │ ├── CurveView │ │ │ ├── CurveView.h │ │ │ └── CurveView.m │ │ ├── Helpers │ │ │ ├── UIView+Convenient.h │ │ │ └── UIView+Convenient.m │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── KYPullToCurveVeiw │ │ │ ├── KYPullToCurveVeiw.h │ │ │ ├── KYPullToCurveVeiw.m │ │ │ ├── KYPullToCurveVeiw_footer.h │ │ │ └── KYPullToCurveVeiw_footer.m │ │ ├── LabelView │ │ │ ├── LabelView.h │ │ │ └── LabelView.m │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ └── AnimatedCurveDemoTests │ │ ├── AnimatedCurveDemoTests.m │ │ └── Info.plist ├── DownloadButtonDemo │ ├── CADemos.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── CADemos.xcscheme │ │ │ └── xcschememanagement.plist │ ├── CADemos │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── DownloadButton │ │ │ ├── DownloadButton.h │ │ │ └── DownloadButton.m │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ └── CADemosTests │ │ ├── CADemosTests.m │ │ └── Info.plist ├── DynamicActionBlockDemo │ └── DynamicActionBlockDemo │ │ ├── DynamicActionBlockDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── DynamicActionBlockDemo.xcscheme │ │ │ └── xcschememanagement.plist │ │ ├── DynamicActionBlockDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── DynamicView.h │ │ ├── DynamicView.m │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── ball.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── ball.png │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ │ └── DynamicActionBlockDemoTests │ │ ├── DynamicActionBlockDemoTests.m │ │ └── Info.plist ├── GooeySlideMenuDemo │ ├── GooeySlideMenuDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── GooeySlideMenuDemo.xcscheme │ │ │ └── xcschememanagement.plist │ ├── GooeySlideMenuDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Classes │ │ │ ├── GooeySlideMenu.h │ │ │ ├── GooeySlideMenu.m │ │ │ ├── SlideMenuButton.h │ │ │ └── SlideMenuButton.m │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ └── GooeySlideMenuDemoTests │ │ ├── GooeySlideMenuDemoTests.m │ │ └── Info.plist ├── InteractiveCardDemo │ └── InteractiveCardDemo │ │ ├── InteractiveCardDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── InteractiveCardDemo.xcscheme │ │ │ └── xcschememanagement.plist │ │ ├── InteractiveCardDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.h~HEAD │ │ ├── AppDelegate.h~Update MCFireWorksButtonDemo and interactiveCard │ │ ├── AppDelegate.m │ │ ├── AppDelegate.m~HEAD │ │ ├── AppDelegate.m~Update MCFireWorksButtonDemo and interactiveCard │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ ├── LaunchScreen.xib~HEAD │ │ │ ├── LaunchScreen.xib~Update MCFireWorksButtonDemo and interactiveCard │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Contents.json~HEAD │ │ │ │ └── Contents.json~Update MCFireWorksButtonDemo and interactiveCard │ │ │ └── pic01.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Contents.json~HEAD │ │ │ │ ├── Contents.json~Update MCFireWorksButtonDemo and interactiveCard │ │ │ │ └── pic01.jpg │ │ ├── Info.plist │ │ ├── Info.plist~HEAD │ │ ├── Info.plist~Update MCFireWorksButtonDemo and interactiveCard │ │ ├── InteractiveView │ │ │ ├── InteractiveView.h │ │ │ └── InteractiveView.m │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ ├── main.m │ │ ├── main.m~HEAD │ │ └── main.m~Update MCFireWorksButtonDemo and interactiveCard │ │ └── InteractiveCardDemoTests │ │ ├── Info.plist │ │ ├── Info.plist~HEAD │ │ ├── Info.plist~Update MCFireWorksButtonDemo and interactiveCard │ │ ├── InteractiveCardDemoTests.m │ │ ├── InteractiveCardDemoTests.m~HEAD │ │ └── InteractiveCardDemoTests.m~Update MCFireWorksButtonDemo and interactiveCard ├── JumpStarDemo │ ├── CoreAnimations.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── CoreAnimations.xcscheme │ │ │ └── xcschememanagement.plist │ ├── CoreAnimations │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── blue_dot.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── blue_dot.png │ │ │ ├── icon_star_incell.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── icon_star_incell.png │ │ │ │ └── icon_star_incell_red.png │ │ │ ├── programming language1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── programming language1.png │ │ │ └── shadow_new.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── shadow_new.png │ │ ├── Info.plist │ │ ├── JumpStarView │ │ │ ├── JumpStarView.h │ │ │ └── JumpStarView.m │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ └── CoreAnimationsTests │ │ ├── CoreAnimationsTests.m │ │ └── Info.plist ├── KYBubbleTransition │ ├── KYBubbleInteractiveTransition.h │ ├── KYBubbleInteractiveTransition.m │ ├── KYBubbleTransition.h │ └── KYBubbleTransition.m ├── KYCuteView │ ├── KYCuteView.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── KYCuteView.xcscheme │ │ │ └── xcschememanagement.plist │ ├── KYCuteView │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Classes │ │ │ ├── KYCuteView.h │ │ │ └── KYCuteView.m │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ ├── KYCuteViewTests │ │ ├── Info.plist │ │ └── KYCuteViewTests.m │ └── KYCuteViewUITests │ │ ├── Info.plist │ │ └── KYCuteViewUITests.m ├── KYGooeyMenuDemo │ ├── Classes │ │ ├── Cross.h │ │ ├── Cross.m │ │ ├── KYGooeyMenu.h │ │ ├── KYGooeyMenu.m │ │ ├── KYSpringLayerAnimation.h │ │ ├── KYSpringLayerAnimation.m │ │ ├── Menu │ │ │ ├── Menu.h │ │ │ └── Menu.m │ │ └── MenuLayer │ │ │ ├── MenuLayer.h │ │ │ └── MenuLayer.m │ └── KYGooeyMenu │ │ ├── KYGooeyMenu.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── KYGooeyMenu.xcscheme │ │ │ └── xcschememanagement.plist │ │ ├── KYGooeyMenu │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── tabbarItem_discover highlighted.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── tabbarItem_discover highlighted.pdf │ │ │ ├── tabbarItem_group highlighted.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── tabbarItem_group highlighted.pdf │ │ │ ├── tabbarItem_home highlighted.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── tabbarItem_home highlighted.pdf │ │ │ ├── tabbarItem_message highlighted.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── tabbarItem_message highlighted.pdf │ │ │ └── tabbarItem_user_man_highlighted.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── tabbarItem_user_man_highlighted.pdf │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ │ └── KYGooeyMenuTests │ │ ├── Info.plist │ │ └── KYGooeyMenuTests.m ├── KYPingTransitionDemo │ ├── KYPingTransition.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── KYPingTransition.xcscheme │ │ │ └── xcschememanagement.plist │ ├── KYPingTransition │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── page1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── IMG_3477.PNG │ │ │ └── page2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── IMG_3476.PNG │ │ ├── Info.plist │ │ ├── PingInvertTransition.h │ │ ├── PingInvertTransition.m │ │ ├── PingTransition.h │ │ ├── PingTransition.m │ │ ├── SecondViewController.h │ │ ├── SecondViewController.m │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ ├── KYPingTransitionTests │ │ ├── Info.plist │ │ └── KYPingTransitionTests.m │ └── pin_g.gif ├── LoadingHUD │ ├── LoadingHUD.h │ └── LoadingHUD.m ├── MCFireworksButtonDemo │ ├── MCFireworksButton │ │ ├── MCFireworksButton.h │ │ ├── MCFireworksButton.m │ │ ├── MCFireworksView.h │ │ └── MCFireworksView.m │ ├── MCFireworksButtonDemo │ │ ├── MCFireworksButtonDemo.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcuserdata │ │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── xcschemes │ │ │ │ ├── MCFireworksButtonDemo.xcscheme │ │ │ │ └── xcschememanagement.plist │ │ ├── MCFireworksButtonDemo │ │ │ ├── Base.lproj │ │ │ │ └── Main.storyboard │ │ │ ├── Images.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ │ ├── LaunchImage.launchimage │ │ │ │ │ └── Contents.json │ │ │ │ ├── Like-Blue.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── Like-Blue@2x.png │ │ │ │ ├── Like.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── Like@2x.png │ │ │ │ └── Sparkle.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── Sparkle.png │ │ │ ├── MCAppDelegate.h │ │ │ ├── MCAppDelegate.m │ │ │ ├── MCFireworksButtonDemo-Info.plist │ │ │ ├── MCFireworksButtonDemo-Prefix.pch │ │ │ ├── MCViewController.h │ │ │ ├── MCViewController.m │ │ │ ├── en.lproj │ │ │ │ └── InfoPlist.strings │ │ │ └── main.m │ │ └── MCFireworksButtonDemoTests │ │ │ ├── MCFireworksButtonDemoTests-Info.plist │ │ │ ├── MCFireworksButtonDemoTests.m │ │ │ └── en.lproj │ │ │ └── InfoPlist.strings │ └── screenshot.gif ├── PulseLoader │ ├── PulseLoader.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── PulseLoader.xcscheme │ │ │ └── xcschememanagement.plist │ ├── PulseLoader │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Classes │ │ │ ├── PulseLoader.h │ │ │ └── PulseLoader.m │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ ├── PulseLoaderTests │ │ ├── Info.plist │ │ └── PulseLoaderTests.m │ └── PulseLoaderUITests │ │ ├── Info.plist │ │ └── PulseLoaderUITests.m ├── SnowEffectsDemo │ └── SnowEffectDemo │ │ ├── SnowEffectDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── SnowEffectDemo.xcscheme │ │ │ └── xcschememanagement.plist │ │ ├── SnowEffectDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── snow.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── snow.png │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ │ └── SnowEffectDemoTests │ │ ├── Info.plist │ │ └── SnowEffectDemoTests.m ├── SplashAnimiationDemo │ ├── SplashAnimiationDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── SplashAnimiationDemo.xcscheme │ │ │ └── xcschememanagement.plist │ ├── SplashAnimiationDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── home_demo.imageset │ │ │ │ ├── 1.png │ │ │ │ └── Contents.json │ │ │ └── logo.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── logo.png │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ └── SplashAnimiationDemoTests │ │ ├── Info.plist │ │ └── SplashAnimiationDemoTests.m ├── UIDynamicsDemo │ ├── UIDynamicsDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── KittenYang.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── UIDynamicsDemo.xcscheme │ │ │ └── xcschememanagement.plist │ ├── UIDynamicsDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── lockScreen.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Screenshot_2015-09-07-03-37-02-124_锁屏.png │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ └── UIDynamicsDemoTests │ │ ├── Info.plist │ │ └── UIDynamicsDemoTests.m └── tvOSCardAnimationDemo │ ├── tvOSCardAnimation.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ ├── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── yangqitao.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ ├── KittenYang.xcuserdatad │ │ └── xcschemes │ │ │ ├── tvOSCardAnimation.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── yangqitao.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── tvOSCardAnimation.xcscheme │ │ └── xcschememanagement.plist │ ├── tvOSCardAnimation │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── 1.imageset │ │ │ ├── 3.png │ │ │ └── Contents.json │ │ ├── 2.imageset │ │ │ ├── 1.png │ │ │ └── Contents.json │ │ ├── 3.imageset │ │ │ ├── 2.png │ │ │ └── Contents.json │ │ ├── 4.imageset │ │ │ ├── 4.png │ │ │ └── Contents.json │ │ ├── 5.imageset │ │ │ ├── 5.png │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── poster.imageset │ │ │ ├── Contents.json │ │ │ └── interstellar3.jpg │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ ├── main.m │ └── tvOSCardView │ │ ├── tvOSCardView.h │ │ └── tvOSCardView.m │ ├── tvOSCardAnimationTests │ ├── Info.plist │ └── tvOSCardAnimationTests.m │ └── tvOSCardAnimationUITests │ ├── Info.plist │ └── tvOSCardAnimationUITests.m ├── README.md └── Swift Version ├── AnimatedCircleDemo-Swift ├── AnimatedCircleDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ └── xcschemes │ │ ├── AnimatedCircleDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── AnimatedCircleDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Classes │ │ ├── CircleLayer.swift │ │ └── CircleView.swift │ ├── Info.plist │ └── ViewController.swift ├── AnimatedCircleDemo-SwiftTests │ ├── AnimatedCircleDemo_SwiftTests.swift │ └── Info.plist └── AnimatedCircleDemo-SwiftUITests │ ├── AnimatedCircleDemo_SwiftUITests.swift │ └── Info.plist ├── AnimatedCurveDemo-Swift ├── AnimatedCurveDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── AnimatedCurveDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── AnimatedCurveDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Classes │ │ ├── CurveLayer │ │ │ └── CurveLayer.swift │ │ ├── CurveRefreshFooterView │ │ │ └── CurveRefreshFooterView.swift │ │ ├── CurveRefreshHeaderView │ │ │ └── CurveRefreshHeaderView.swift │ │ ├── CurveView │ │ │ └── CurveView.swift │ │ └── LabelView │ │ │ └── LabelView.swift │ ├── Info.plist │ └── ViewController.swift ├── AnimatedCurveDemo-SwiftTests │ ├── AnimatedCurveDemo_SwiftTests.swift │ └── Info.plist └── AnimatedCurveDemo-SwiftUITests │ ├── AnimatedCurveDemo_SwiftUITests.swift │ └── Info.plist ├── BubbleTransitionAnimation └── BubbleTransitionAnimation.swift ├── DownloadButtonDemo-Swift ├── CADemos-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── CADemos-Swift.xcscheme │ │ └── xcschememanagement.plist ├── CADemos-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Classes │ │ └── DownloadButton.swift │ ├── Info.plist │ └── ViewController.swift ├── CADemos-SwiftTests │ ├── CADemos_SwiftTests.swift │ └── Info.plist └── CADemos-SwiftUITests │ ├── CADemos_SwiftUITests.swift │ └── Info.plist ├── DynamicActionBlockDemo-Swift ├── DynamicActionBlockDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ └── xcschemes │ │ ├── DynamicActionBlockDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── DynamicActionBlockDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── ball.imageset │ │ │ ├── Contents.json │ │ │ └── ball.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DynamicView.swift │ ├── Info.plist │ └── ViewController.swift ├── DynamicActionBlockDemo-SwiftTests │ ├── DynamicActionBlockDemo_SwiftTests.swift │ └── Info.plist └── DynamicActionBlockDemo-SwiftUITests │ ├── DynamicActionBlockDemo_SwiftUITests.swift │ └── Info.plist ├── GooeySlideMenuDemo-Swift ├── GooeySlideMenuDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── GooeySlideMenuDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── GooeySlideMenuDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Classes │ │ ├── GooeySlideMenu.swift │ │ └── SlideMenuButton.swift │ ├── Info.plist │ └── ViewController.swift ├── GooeySlideMenuDemo-SwiftTests │ ├── GooeySlideMenuDemo_SwiftTests.swift │ └── Info.plist └── GooeySlideMenuDemo-SwiftUITests │ ├── GooeySlideMenuDemo_SwiftUITests.swift │ └── Info.plist ├── InteractiveCardDemo-Swift ├── InteractiveCardDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── InteractiveCardDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── InteractiveCardDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── pic01.imageset │ │ │ ├── Contents.json │ │ │ └── pic01.jpg │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Classess │ │ └── InteractiveView.swift │ ├── Info.plist │ └── ViewController.swift ├── InteractiveCardDemo-SwiftTests │ ├── Info.plist │ └── InteractiveCardDemo_SwiftTests.swift └── InteractiveCardDemo-SwiftUITests │ ├── Info.plist │ └── InteractiveCardDemo_SwiftUITests.swift ├── JumpStarDemo-Swift ├── JumpStarDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ └── xcschemes │ │ ├── JumpStarDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── JumpStarDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── blue_dot.imageset │ │ │ ├── Contents.json │ │ │ └── blue_dot.png │ │ ├── icon_star_incell.imageset │ │ │ ├── Contents.json │ │ │ └── icon_star_incell.png │ │ └── shadow_new.imageset │ │ │ ├── Contents.json │ │ │ └── shadow_new.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Classes │ │ └── JumpStarView.swift │ ├── Info.plist │ └── ViewController.swift ├── JumpStarDemo-SwiftTests │ ├── Info.plist │ └── JumpStarDemo_SwiftTests.swift └── JumpStarDemo-SwiftUITests │ ├── Info.plist │ └── JumpStarDemo_SwiftUITests.swift ├── KYCuteView-Swift ├── KYCuteView-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── KYCuteView-Swift.xcscheme │ │ └── xcschememanagement.plist ├── KYCuteView-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── CuteView.swift │ ├── Info.plist │ └── ViewController.swift ├── KYCuteView-SwiftTests │ ├── Info.plist │ └── KYCuteView_SwiftTests.swift └── KYCuteView-SwiftUITests │ ├── Info.plist │ └── KYCuteView_SwiftUITests.swift ├── KYGooeyMenu-Swift ├── KYGooeyMenu-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── KYGooeyMenu-Swift.xcscheme │ │ └── xcschememanagement.plist ├── KYGooeyMenu-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── Menu │ │ └── Menu.swift │ ├── MenuLayer │ │ └── MenuLayer.swift │ ├── SpringLayerAnimation │ │ └── SpringLayerAnimation.swift │ └── ViewController.swift ├── KYGooeyMenu-SwiftTests │ ├── Info.plist │ └── KYGooeyMenu_SwiftTests.swift └── KYGooeyMenu-SwiftUITests │ ├── Info.plist │ └── KYGooeyMenu_SwiftUITests.swift ├── KYPingTransition-Swift ├── KYPingTransition-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── KYPingTransition-Swift.xcscheme │ │ └── xcschememanagement.plist ├── KYPingTransition-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── page1.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_3477.PNG │ │ └── page2.imageset │ │ │ ├── Contents.json │ │ │ └── IMG_3476.PNG │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── PingTransition │ │ ├── PingInvertTransition.swift │ │ └── PingTransition.swift │ ├── SecondViewController.swift │ └── ViewController.swift ├── KYPingTransition-SwiftTests │ ├── Info.plist │ └── KYPingTransition_SwiftTests.swift └── KYPingTransition-SwiftUITests │ ├── Info.plist │ └── KYPingTransition_SwiftUITests.swift ├── LoadingHUD └── LoadingHUD.swift ├── PulseLoader-Swift ├── PulseLoader-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ └── xcschemes │ │ ├── PulseLoader-Swift.xcscheme │ │ └── xcschememanagement.plist ├── PulseLoader-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── PulseLoader │ │ └── PulseLoader.swift │ └── ViewController.swift ├── PulseLoader-SwiftTests │ ├── Info.plist │ └── PulseLoader_SwiftTests.swift └── PulseLoader-SwiftUITests │ ├── Info.plist │ └── PulseLoader_SwiftUITests.swift ├── ReplicatorLoaderDemo-Swift ├── ReplicatorLoaderDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── ReplicatorLoaderDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── ReplicatorLoaderDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ReplicatorLoader │ │ ├── ReplicatorLoader.swift │ │ └── Types │ │ │ ├── DotsFlipReplicatorLayer.swift │ │ │ ├── GridReplicatorLayer.swift │ │ │ └── PulseReplicatorLayer.swift │ └── ViewController.swift ├── ReplicatorLoaderDemo-SwiftTests │ ├── Info.plist │ └── ReplicatorLoaderDemo_SwiftTests.swift └── ReplicatorLoaderDemo-SwiftUITests │ ├── Info.plist │ └── ReplicatorLoaderDemo_SwiftUITests.swift ├── SnowEffectDemo-Swift ├── SnowEffectDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ └── xcschemes │ │ ├── SnowEffectDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── SnowEffectDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── snow.imageset │ │ │ ├── Contents.json │ │ │ └── snow.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── SnowEffectDemo-SwiftTests │ ├── Info.plist │ └── SnowEffectDemo_SwiftTests.swift └── SnowEffectDemo-SwiftUITests │ ├── Info.plist │ └── SnowEffectDemo_SwiftUITests.swift ├── SplashAnimiationDemo-Swift ├── SplashAnimiationDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ └── xcschemes │ │ ├── SplashAnimiationDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── SplashAnimiationDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── home_demo.imageset │ │ │ ├── 1.png │ │ │ └── Contents.json │ │ └── logo.imageset │ │ │ ├── Contents.json │ │ │ └── logo.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── SplashAnimiationDemo-SwiftTests │ ├── Info.plist │ └── SplashAnimiationDemo_SwiftTests.swift └── SplashAnimiationDemo-SwiftUITests │ ├── Info.plist │ └── SplashAnimiationDemo_SwiftUITests.swift ├── UIDynamicsDemo-Swift ├── UIDynamicsDemo-Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── KittenYang.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ └── xcschemes │ │ ├── UIDynamicsDemo-Swift.xcscheme │ │ └── xcschememanagement.plist ├── UIDynamicsDemo-Swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── lockScreen.imageset │ │ │ ├── Contents.json │ │ │ └── Screenshot_2015-09-07-03-37-02-124_锁屏.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── UIDynamicsDemo-SwiftTests │ ├── Info.plist │ └── UIDynamicsDemo_SwiftTests.swift └── UIDynamicsDemo-SwiftUITests │ ├── Info.plist │ └── UIDynamicsDemo_SwiftUITests.swift └── tvOSCardAnimation-Swift ├── tvOSCardAnimation-Swift.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── KittenYang.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── KittenYang.xcuserdatad │ └── xcschemes │ ├── tvOSCardAnimation-Swift.xcscheme │ └── xcschememanagement.plist ├── tvOSCardAnimation-Swift ├── AppDelegate.swift ├── Assets.xcassets │ ├── 1.imageset │ │ ├── 3.png │ │ └── Contents.json │ ├── 2.imageset │ │ ├── 1.png │ │ └── Contents.json │ ├── 3.imageset │ │ ├── 2.png │ │ └── Contents.json │ ├── 4.imageset │ │ ├── 4.png │ │ └── Contents.json │ ├── 5.imageset │ │ ├── 5.png │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ └── poster.imageset │ │ ├── Contents.json │ │ └── interstellar3.jpg ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── ViewController.swift └── tvOSCardView.swift ├── tvOSCardAnimation-SwiftTests ├── Info.plist └── tvOSCardAnimation_SwiftTests.swift └── tvOSCardAnimation-SwiftUITests ├── Info.plist └── tvOSCardAnimation_SwiftUITests.swift /A guide to iOS animation_logo v1.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/A guide to iOS animation_logo v1.0.png -------------------------------------------------------------------------------- /A guide to iOS animation_logo v2.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/A guide to iOS animation_logo v2.0.png -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AnimatedCircleDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5FAAC17C1B6127D9006583DF 16 | 17 | primary 18 | 19 | 20 | 5FAAC1951B6127D9006583DF 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // AnimatedCircleDemo 4 | // 5 | // Created by Kitten Yang on 7/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo/CircleView/CircleLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // CircleLayer.h 3 | // AnimatedCircleDemo 4 | // 5 | // Created by Kitten Yang on 7/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CircleLayer : CALayer 12 | 13 | @property(nonatomic,assign)CGFloat progress; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo/CircleView/CircleView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CircleView.h 3 | // AnimatedCircleDemo 4 | // 5 | // Created by Kitten Yang on 7/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "CircleLayer.h" 11 | 12 | @interface CircleView : UIView 13 | 14 | @property(nonatomic,strong)CircleLayer *circleLayer; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo/CircleView/CircleView.m: -------------------------------------------------------------------------------- 1 | // 2 | // CircleView.m 3 | // AnimatedCircleDemo 4 | // 5 | // Created by Kitten Yang on 7/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import "CircleView.h" 10 | 11 | @implementation CircleView 12 | 13 | + (Class)layerClass{ 14 | return [CircleLayer class]; 15 | } 16 | 17 | -(id)initWithFrame:(CGRect)frame{ 18 | self = [super initWithFrame:frame]; 19 | if (self) { 20 | self.circleLayer = [CircleLayer layer]; 21 | self.circleLayer.frame = CGRectMake(0, 0, frame.size.width, frame.size.height); 22 | self.circleLayer.contentsScale = [UIScreen mainScreen].scale; 23 | [self.layer addSublayer:self.circleLayer]; 24 | } 25 | return self; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // AnimatedCircleDemo 4 | // 5 | // Created by Kitten Yang on 7/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // AnimatedCircleDemo 4 | // 5 | // Created by Kitten Yang on 7/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCircleDemo/AnimatedCircleDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AnimatedCurveDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5FB8743C1B4A6CCC008A3940 16 | 17 | primary 18 | 19 | 20 | 5FB874551B4A6CCE008A3940 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // AnimatedCurveDemo 4 | // 5 | // Created by Kitten Yang on 7/6/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo/CurveLayer/CurveLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // CurveLayer.h 3 | // AnimatedCurveDemo 4 | // 5 | // Created by Kitten Yang on 7/6/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface CurveLayer : CALayer 13 | 14 | /** 15 | * CurveLayer的进度 0~1 16 | */ 17 | @property(nonatomic,assign)CGFloat progress; 18 | 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo/CurveView/CurveView.h: -------------------------------------------------------------------------------- 1 | // 2 | // CurveView.h 3 | // AnimatedCurveDemo 4 | // 5 | // Created by Kitten Yang on 7/6/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CurveView : UIView 12 | 13 | 14 | /** 15 | * CurveView的进度 0~1 16 | */ 17 | @property(nonatomic,assign)CGFloat progress; 18 | 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo/KYPullToCurveVeiw/KYPullToCurveVeiw_footer.h: -------------------------------------------------------------------------------- 1 | // 2 | // KYPullToCurveVeiw_footer.h 3 | // AnimatedCurveDemo 4 | // 5 | // Created by yangqitao on 15/7/8. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | 13 | @interface KYPullToCurveVeiw_footer : UIView 14 | 15 | /** 16 | * 需要滑动多大距离才能松开 17 | */ 18 | @property(nonatomic,assign)CGFloat pullDistance; 19 | 20 | 21 | /** 22 | * 初始化方法 23 | * 24 | * @param scrollView 关联的滚动视图 25 | * 26 | * @return self 27 | */ 28 | -(id)initWithAssociatedScrollView:(UIScrollView *)scrollView withNavigationBar:(BOOL)navBar; 29 | 30 | 31 | 32 | /** 33 | * 停止旋转,并且滚动视图回弹到底部 34 | */ 35 | -(void)stopRefreshing; 36 | 37 | 38 | /** 39 | * 刷新执行的具体操作 40 | * 41 | * @param block 操作 42 | */ 43 | 44 | -(void)addRefreshingBlock:(void (^)(void))block; 45 | 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo/LabelView/LabelView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LabelView.h 3 | // AnimatedCurveDemo 4 | // 5 | // Created by yangqitao on 15/7/8. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | typedef enum : NSUInteger { 13 | UP, 14 | DOWN, 15 | } PULLINGSTATE; 16 | 17 | @interface LabelView : UIView 18 | 19 | 20 | /** 21 | * LabelView的进度 0~1 22 | */ 23 | @property(nonatomic,assign)CGFloat progress; 24 | 25 | 26 | /** 27 | * 是否正在刷新 28 | */ 29 | @property(nonatomic,assign)BOOL loading; 30 | 31 | 32 | /** 33 | * 上拉还是下拉 34 | */ 35 | @property(nonatomic,assign)PULLINGSTATE state; 36 | 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // AnimatedCurveDemo 4 | // 5 | // Created by Kitten Yang on 7/6/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // AnimatedCurveDemo 4 | // 5 | // Created by Kitten Yang on 7/6/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/AnimatedCurveDemo/AnimatedCurveDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/DownloadButtonDemo/CADemos.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CADemos.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F5206451BAEF4E00066BEC6 16 | 17 | primary 18 | 19 | 20 | 5F52065E1BAEF4E10066BEC6 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // CADemos 4 | // 5 | // Created by Kitten Yang on 9/20/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos/DownloadButton/DownloadButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // DownloadButton.h 3 | // CADemos 4 | // 5 | // Created by Kitten Yang on 9/21/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DownloadButton : UIView 12 | 13 | /** 14 | * 进度条高度 15 | */ 16 | @property(nonatomic,assign)CGFloat progressBarHeight; 17 | 18 | /** 19 | * 进度条宽度 20 | */ 21 | @property(nonatomic,assign)CGFloat progressBarWidth; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // CADemos 4 | // 5 | // Created by Kitten Yang on 9/20/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // CADemos 4 | // 5 | // Created by Kitten Yang on 9/20/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "DownloadButton.h" 11 | 12 | @interface ViewController () 13 | //@property (weak, nonatomic) IBOutlet UIView *AnimateView; 14 | @property (weak, nonatomic) IBOutlet DownloadButton *downloadButton; 15 | 16 | @end 17 | 18 | @implementation ViewController{ 19 | BOOL animating; 20 | } 21 | 22 | - (void)viewDidLoad { 23 | [super viewDidLoad]; 24 | self.downloadButton.progressBarWidth = 200; 25 | self.downloadButton.progressBarHeight = 30; 26 | } 27 | 28 | 29 | 30 | - (void)didReceiveMemoryWarning { 31 | [super didReceiveMemoryWarning]; 32 | // Dispose of any resources that can be recreated. 33 | } 34 | 35 | 36 | 37 | 38 | 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemos/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // CADemos 4 | // 5 | // Created by Kitten Yang on 9/20/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/DownloadButtonDemo/CADemosTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DynamicActionBlockDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F721B891BB70831006EBBCB 16 | 17 | primary 18 | 19 | 20 | 5F721BA21BB70831006EBBCB 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // DynamicActionBlockDemo 4 | // 5 | // Created by Kitten Yang on 9/27/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DynamicView.h 3 | // DynamicActionBlockDemo 4 | // 5 | // Created by Kitten Yang on 1/2/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DynamicView : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo/Images.xcassets/ball.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "ball.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo/Images.xcassets/ball.imageset/ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo/Images.xcassets/ball.imageset/ball.png -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // DynamicActionBlockDemo 4 | // 5 | // Created by Kitten Yang on 9/27/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // DynamicActionBlockDemo 4 | // 5 | // Created by Kitten Yang on 9/27/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "DynamicView.h" 11 | 12 | @interface ViewController () 13 | 14 | @end 15 | 16 | @implementation ViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | DynamicView *dynamicView = [[DynamicView alloc]initWithFrame:self.view.bounds]; 21 | [self.view addSubview:dynamicView]; 22 | } 23 | 24 | 25 | 26 | - (void)didReceiveMemoryWarning { 27 | [super didReceiveMemoryWarning]; 28 | // Dispose of any resources that can be recreated. 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // DynamicActionBlockDemo 4 | // 5 | // Created by Kitten Yang on 9/27/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/DynamicActionBlockDemo/DynamicActionBlockDemo/DynamicActionBlockDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | GooeySlideMenuDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F2B33F41B77928F0024D2D4 16 | 17 | primary 18 | 19 | 20 | 5F2B340D1B77928F0024D2D4 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // GooeySlideMenuDemo 4 | // 5 | // Created by Kitten Yang on 15/8/9. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo/Classes/SlideMenuButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // SlideMenuButton.h 3 | // GooeySlideMenuDemo 4 | // 5 | // Created by Kitten Yang on 15/8/13. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SlideMenuButton : UIView 12 | 13 | /** 14 | * onvenient init method 15 | * 16 | * @param title title 17 | * 18 | * @return object 19 | */ 20 | -(id)initWithTitle:(NSString *)title; 21 | 22 | 23 | /** 24 | * The button color 25 | */ 26 | @property(nonatomic,strong)UIColor *buttonColor; 27 | 28 | 29 | 30 | /** 31 | * button clicked block 32 | */ 33 | @property(nonatomic,copy)void(^buttonClickBlock)(void); 34 | 35 | 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // GooeySlideMenuDemo 4 | // 5 | // Created by Kitten Yang on 15/8/9. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // GooeySlideMenuDemo 4 | // 5 | // Created by Kitten Yang on 15/8/9. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/GooeySlideMenuDemo/GooeySlideMenuDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | InteractiveCardDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F721BBB1BB84C7C006EBBCB 16 | 17 | primary 18 | 19 | 20 | 5F721BD41BB84C7C006EBBCB 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // InteractiveCardDemo 4 | // 5 | // Created by Kitten Yang on 9/28/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/AppDelegate.h~HEAD: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // InteractiveCardDemo 4 | // 5 | // Created by Kitten Yang on 9/28/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/AppDelegate.h~Update MCFireWorksButtonDemo and interactiveCard: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // InteractiveCardDemo 4 | // 5 | // Created by Kitten Yang on 9/28/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/Images.xcassets/pic01.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "pic01.jpg" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/Images.xcassets/pic01.imageset/Contents.json~HEAD: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "pic01.jpg" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/Images.xcassets/pic01.imageset/Contents.json~Update MCFireWorksButtonDemo and interactiveCard: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "pic01.jpg" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/Images.xcassets/pic01.imageset/pic01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/Images.xcassets/pic01.imageset/pic01.jpg -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/InteractiveView/InteractiveView.h: -------------------------------------------------------------------------------- 1 | // 2 | // InteractiveView.h 3 | // InteractiveCardDemo 4 | // 5 | // Created by Kitten Yang on 9/28/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface InteractiveView : UIImageView 12 | 13 | @property(nonatomic,weak)UIView *dimmingView; 14 | @property(nonatomic,weak)UIView *gestureView; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // InteractiveCardDemo 4 | // 5 | // Created by Kitten Yang on 9/28/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // InteractiveCardDemo 4 | // 5 | // Created by Kitten Yang on 9/28/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/main.m~HEAD: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // InteractiveCardDemo 4 | // 5 | // Created by Kitten Yang on 9/28/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemo/main.m~Update MCFireWorksButtonDemo and interactiveCard: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // InteractiveCardDemo 4 | // 5 | // Created by Kitten Yang on 9/28/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/InteractiveCardDemo/InteractiveCardDemo/InteractiveCardDemoTests/Info.plist~HEAD: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/JumpStarDemo/CoreAnimations.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CoreAnimations.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F5205D91BA9B1D40066BEC6 16 | 17 | primary 18 | 19 | 20 | 5F5205F21BA9B1D50066BEC6 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // CoreAnimations 4 | // 5 | // Created by Kitten Yang on 9/16/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/blue_dot.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "blue_dot.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/blue_dot.imageset/blue_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/blue_dot.imageset/blue_dot.png -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/icon_star_incell.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "icon_star_incell.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "icon_star_incell_red.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/icon_star_incell.imageset/icon_star_incell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/icon_star_incell.imageset/icon_star_incell.png -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/icon_star_incell.imageset/icon_star_incell_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/icon_star_incell.imageset/icon_star_incell_red.png -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/programming language1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "programming language1.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/programming language1.imageset/programming language1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/programming language1.imageset/programming language1.png -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/shadow_new.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "shadow_new.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/shadow_new.imageset/shadow_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/JumpStarDemo/CoreAnimations/Images.xcassets/shadow_new.imageset/shadow_new.png -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/JumpStarView/JumpStarView.h: -------------------------------------------------------------------------------- 1 | // 2 | // JumpStarView.h 3 | // CoreAnimations 4 | // 5 | // Created by Kitten Yang on 9/17/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef enum : NSUInteger { 12 | NONMark, 13 | Mark, 14 | }STATE; 15 | 16 | 17 | @interface JumpStarView : UIView 18 | 19 | -(void)animate; 20 | 21 | @property(nonatomic,assign,setter=setState:)STATE state; 22 | 23 | @property(nonatomic,strong)UIImage *markedImage; 24 | 25 | @property(nonatomic,strong)UIImage *non_markedImage; 26 | 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // CoreAnimations 4 | // 5 | // Created by Kitten Yang on 9/16/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimations/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // CoreAnimations 4 | // 5 | // Created by Kitten Yang on 9/16/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/JumpStarDemo/CoreAnimationsTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/KYBubbleTransition/KYBubbleInteractiveTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // KYBubbleInteractiveTransition.h 3 | // guji 4 | // 5 | // Created by Kitten Yang on 5/16/15. 6 | // Copyright (c) 2015 Guji Tech Ltd. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface KYBubbleInteractiveTransition : UIPercentDrivenInteractiveTransition 12 | 13 | @property(nonatomic,assign)BOOL interacting; 14 | -(void)addPopGesture:(UIViewController *)viewController; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Objective-C Version/KYCuteView/KYCuteView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/KYCuteView/KYCuteView.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYCuteView/KYCuteView.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/KYCuteView/KYCuteView.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KYCuteView.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F41BA2D1C529921002700A2 16 | 17 | primary 18 | 19 | 20 | 5F41BA461C529921002700A2 21 | 22 | primary 23 | 24 | 25 | 5F41BA511C529921002700A2 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Objective-C Version/KYCuteView/KYCuteView/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // KYCuteView 4 | // 5 | // Created by Kitten Yang on 1/23/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/KYCuteView/KYCuteView/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // KYCuteView 4 | // 5 | // Created by Kitten Yang on 1/23/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/KYCuteView/KYCuteView/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // KYCuteView 4 | // 5 | // Created by Kitten Yang on 1/23/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/KYCuteView/KYCuteViewTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/KYCuteView/KYCuteViewUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/Classes/Cross.h: -------------------------------------------------------------------------------- 1 | // 2 | // Cross.h 3 | // KYGooeyMenu 4 | // 5 | // Created by Kitten Yang on 4/25/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface Cross : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/Classes/Menu/Menu.h: -------------------------------------------------------------------------------- 1 | // 2 | // Menu.h 3 | // KYGooeyMenu 4 | // 5 | // Created by Kitten Yang on 15/8/23. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MenuLayer.h" 11 | 12 | @interface Menu : UIView 13 | 14 | @property(nonatomic,strong,readonly)MenuLayer *menuLayer; 15 | 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/Classes/MenuLayer/MenuLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MenuLayer.h 3 | // KYGooeyMenu 4 | // 5 | // Created by Kitten Yang on 15/8/23. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | typedef enum : NSUInteger { 13 | STATE1, 14 | STATE2, 15 | STATE3, 16 | } STATE; 17 | 18 | @interface MenuLayer : CALayer 19 | 20 | @property(nonatomic,assign)BOOL showDebug; 21 | @property(nonatomic,assign)STATE animState; 22 | @property(nonatomic,assign)CGFloat xAxisPercent; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KYGooeyMenu.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F5DCAD71AE9441F00CA8491 16 | 17 | primary 18 | 19 | 20 | 5F5DCAF01AE9442100CA8491 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // KYGooeyMenu 4 | // 5 | // Created by Kitten Yang on 4/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_discover highlighted.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tabbarItem_discover highlighted.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_discover highlighted.imageset/tabbarItem_discover highlighted.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_discover highlighted.imageset/tabbarItem_discover highlighted.pdf -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_group highlighted.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tabbarItem_group highlighted.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_group highlighted.imageset/tabbarItem_group highlighted.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_group highlighted.imageset/tabbarItem_group highlighted.pdf -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_home highlighted.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tabbarItem_home highlighted.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_home highlighted.imageset/tabbarItem_home highlighted.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_home highlighted.imageset/tabbarItem_home highlighted.pdf -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_message highlighted.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tabbarItem_message highlighted.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_message highlighted.imageset/tabbarItem_message highlighted.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_message highlighted.imageset/tabbarItem_message highlighted.pdf -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_user_man_highlighted.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tabbarItem_user_man_highlighted.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_user_man_highlighted.imageset/tabbarItem_user_man_highlighted.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/Images.xcassets/tabbarItem_user_man_highlighted.imageset/tabbarItem_user_man_highlighted.pdf -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // KYGooeyMenu 4 | // 5 | // Created by Kitten Yang on 4/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenu/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // KYGooeyMenu 4 | // 5 | // Created by Kitten Yang on 4/23/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/KYGooeyMenuDemo/KYGooeyMenu/KYGooeyMenuTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYPingTransitionDemo/KYPingTransition.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KYPingTransition.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F5777CD1A7B6F5B00FC3A61 16 | 17 | primary 18 | 19 | 20 | 5F5777E61A7B6F5B00FC3A61 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // KYPingTransition 4 | // 5 | // Created by Kitten Yang on 1/30/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/Images.xcassets/page1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "IMG_3477.PNG" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/Images.xcassets/page1.imageset/IMG_3477.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYPingTransitionDemo/KYPingTransition/Images.xcassets/page1.imageset/IMG_3477.PNG -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/Images.xcassets/page2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "IMG_3476.PNG" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/Images.xcassets/page2.imageset/IMG_3476.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYPingTransitionDemo/KYPingTransition/Images.xcassets/page2.imageset/IMG_3476.PNG -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/PingInvertTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // PingInvertTransition.h 3 | // KYPingTransition 4 | // 5 | // Created by Kitten Yang on 1/30/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface PingInvertTransition : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/PingTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // PingTransition.h 3 | // KYPingTransition 4 | // 5 | // Created by Kitten Yang on 1/30/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | //#import 12 | 13 | @interface PingTransition : NSObject 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/SecondViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SecondViewController.h 3 | // KYPingTransition 4 | // 5 | // Created by Kitten Yang on 1/31/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SecondViewController : UIViewController 12 | @property (strong, nonatomic) IBOutlet UIButton *button; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // KYPingTransition 4 | // 5 | // Created by Kitten Yang on 1/30/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | @property (strong, nonatomic) IBOutlet UIButton *button; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransition/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // KYPingTransition 4 | // 5 | // Created by Kitten Yang on 1/30/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/KYPingTransitionTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/KYPingTransitionDemo/pin_g.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/KYPingTransitionDemo/pin_g.gif -------------------------------------------------------------------------------- /Objective-C Version/LoadingHUD/LoadingHUD.h: -------------------------------------------------------------------------------- 1 | // 2 | // LoadingHUD.h 3 | // Cosmos 4 | // 5 | // Created by KittenYang on 16/3/9. 6 | // Copyright © 2016年 KittenYang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LoadingHUD : UIVisualEffectView 12 | 13 | +(void)showHUD; 14 | +(void)dismissHUD; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButton/MCFireworksButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // MCFireworksButton.h 3 | // MCFireworksButton 4 | // 5 | // Created by Matthew Cheok on 17/3/14. 6 | // Copyright (c) 2014 Matthew Cheok. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MCFireworksButton : UIButton 12 | 13 | @property (strong, nonatomic) UIImage *particleImage; 14 | @property (assign, nonatomic) CGFloat particleScale; 15 | @property (assign, nonatomic) CGFloat particleScaleRange; 16 | 17 | - (void)animate; 18 | - (void)popOutsideWithDuration:(NSTimeInterval)duration; 19 | - (void)popInsideWithDuration:(NSTimeInterval)duration; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButton/MCFireworksView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MCFireworksView.h 3 | // MCFireworksButton 4 | // 5 | // Created by Matthew Cheok on 17/3/14. 6 | // Copyright (c) 2014 Matthew Cheok. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MCFireworksView : UIView 12 | 13 | @property (strong, nonatomic) UIImage *particleImage; 14 | @property (assign, nonatomic) CGFloat particleScale; 15 | @property (assign, nonatomic) CGFloat particleScaleRange; 16 | 17 | - (void)animate; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | MCFireworksButtonDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 34B2D88118D68B3C0089F6A4 16 | 17 | primary 18 | 19 | 20 | 34B2D8A218D68B3C0089F6A4 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "60x60", 21 | "scale" : "3x" 22 | } 23 | ], 24 | "info" : { 25 | "version" : 1, 26 | "author" : "xcode" 27 | } 28 | } -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Like-Blue.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "Like-Blue@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Like-Blue.imageset/Like-Blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Like-Blue.imageset/Like-Blue@2x.png -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Like.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "Like@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Like.imageset/Like@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Like.imageset/Like@2x.png -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Sparkle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "Sparkle.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Sparkle.imageset/Sparkle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/Images.xcassets/Sparkle.imageset/Sparkle.png -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/MCAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // MCAppDelegate.h 3 | // MCFireworksButtonDemo 4 | // 5 | // Created by Matthew Cheok on 17/3/14. 6 | // Copyright (c) 2014 Matthew Cheok. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MCAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/MCViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MCViewController.h 3 | // MCFireworksButtonDemo 4 | // 5 | // Created by Matthew Cheok on 17/3/14. 6 | // Copyright (c) 2014 Matthew Cheok. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MCViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // MCFireworksButtonDemo 4 | // 5 | // Created by Matthew Cheok on 17/3/14. 6 | // Copyright (c) 2014 Matthew Cheok. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "MCAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([MCAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemoTests/MCFireworksButtonDemoTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.matthewcheok.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/MCFireworksButtonDemo/MCFireworksButtonDemoTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Objective-C Version/MCFireworksButtonDemo/screenshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/MCFireworksButtonDemo/screenshot.gif -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoader.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoader.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/PulseLoader/PulseLoader.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoader.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | PulseLoader.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5FE4F0251C6106210029AC3F 16 | 17 | primary 18 | 19 | 20 | 5FE4F03E1C6106260029AC3F 21 | 22 | primary 23 | 24 | 25 | 5FE4F0491C6106260029AC3F 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoader/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // PulseLoader 4 | // 5 | // Created by Kitten Yang on 2/2/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoader/Classes/PulseLoader.h: -------------------------------------------------------------------------------- 1 | // 2 | // PulseLoader.h 3 | // PulseLoader 4 | // 5 | // Created by Kitten Yang on 2/2/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PulseLoader : UIView 12 | 13 | -(id)initWithFrame:(CGRect)frame withColor:(UIColor *)color; 14 | 15 | - (void)startToPulse; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoader/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // PulseLoader 4 | // 5 | // Created by Kitten Yang on 2/2/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoader/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // PulseLoader 4 | // 5 | // Created by Kitten Yang on 2/2/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "PulseLoader.h" 11 | 12 | @interface ViewController () 13 | 14 | @end 15 | 16 | @implementation ViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | PulseLoader *pulseLoader = [[PulseLoader alloc]initWithFrame:CGRectMake(0, 0, 50, 50) withColor:[UIColor redColor]]; 21 | pulseLoader.center = self.view.center; 22 | [self.view addSubview:pulseLoader]; 23 | 24 | [pulseLoader startToPulse]; 25 | } 26 | 27 | - (void)didReceiveMemoryWarning { 28 | [super didReceiveMemoryWarning]; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoader/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // PulseLoader 4 | // 5 | // Created by Kitten Yang on 2/2/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoaderTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/PulseLoader/PulseLoaderUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SnowEffectDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F721B571BB7007A006EBBCB 16 | 17 | primary 18 | 19 | 20 | 5F721B701BB7007B006EBBCB 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // SnowEffectDemo 4 | // 5 | // Created by Kitten Yang on 9/27/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo/Images.xcassets/snow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "snow.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo/Images.xcassets/snow.imageset/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo/Images.xcassets/snow.imageset/snow.png -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // SnowEffectDemo 4 | // 5 | // Created by Kitten Yang on 9/27/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SnowEffectDemo 4 | // 5 | // Created by Kitten Yang on 9/27/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/SnowEffectsDemo/SnowEffectDemo/SnowEffectDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SplashAnimiationDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F2B33C21B7777360024D2D4 16 | 17 | primary 18 | 19 | 20 | 5F2B33DB1B7777380024D2D4 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // SplashAnimiationDemo 4 | // 5 | // Created by Kitten Yang on 15/8/9. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/Images.xcassets/home_demo.imageset/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/Images.xcassets/home_demo.imageset/1.png -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/Images.xcassets/home_demo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "1.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/Images.xcassets/logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "logo.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/Images.xcassets/logo.imageset/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/Images.xcassets/logo.imageset/logo.png -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // SplashAnimiationDemo 4 | // 5 | // Created by Kitten Yang on 15/8/9. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // SplashAnimiationDemo 4 | // 5 | // Created by Kitten Yang on 15/8/9. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | self.title = @"首页"; 20 | // Do any additional setup after loading the view, typically from a nib. 21 | } 22 | 23 | - (void)didReceiveMemoryWarning { 24 | [super didReceiveMemoryWarning]; 25 | // Dispose of any resources that can be recreated. 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SplashAnimiationDemo 4 | // 5 | // Created by Kitten Yang on 15/8/9. 6 | // Copyright (c) 2015年 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/SplashAnimiationDemo/SplashAnimiationDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/UIDynamicsDemo/UIDynamicsDemo.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | UIDynamicsDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F331E511B9CAD13008F9872 16 | 17 | primary 18 | 19 | 20 | 5F331E6A1B9CAD15008F9872 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // UIDynamicsDemo 4 | // 5 | // Created by Kitten Yang on 9/7/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo/Images.xcassets/lockScreen.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "Screenshot_2015-09-07-03-37-02-124_锁屏.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo/Images.xcassets/lockScreen.imageset/Screenshot_2015-09-07-03-37-02-124_锁屏.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/UIDynamicsDemo/UIDynamicsDemo/Images.xcassets/lockScreen.imageset/Screenshot_2015-09-07-03-37-02-124_锁屏.png -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // UIDynamicsDemo 4 | // 5 | // Created by Kitten Yang on 9/7/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // UIDynamicsDemo 4 | // 5 | // Created by Kitten Yang on 9/7/15. 6 | // Copyright (c) 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/UIDynamicsDemo/UIDynamicsDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation.xcodeproj/project.xcworkspace/xcuserdata/yangqitao.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation.xcodeproj/project.xcworkspace/xcuserdata/yangqitao.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | tvOSCardAnimation.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F4FB5B2E1BAFE6A600A45BDE 16 | 17 | primary 18 | 19 | 20 | F4FB5B471BAFE6A600A45BDE 21 | 22 | primary 23 | 24 | 25 | F4FB5B521BAFE6A600A45BDE 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation.xcodeproj/xcuserdata/yangqitao.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation.xcodeproj/xcuserdata/yangqitao.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | tvOSCardAnimation.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | F4FB5B2E1BAFE6A600A45BDE 16 | 17 | primary 18 | 19 | 20 | F4FB5B471BAFE6A600A45BDE 21 | 22 | primary 23 | 24 | 25 | F4FB5B521BAFE6A600A45BDE 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // tvOSCardAnimation 4 | // 5 | // Created by yangqitao on 15/9/21. 6 | // Copyright © 2015年 yangqitao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/1.imageset/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/1.imageset/3.png -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "3.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/2.imageset/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/2.imageset/1.png -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/3.imageset/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/3.imageset/2.png -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "2.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/4.imageset/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/4.imageset/4.png -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "4.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/5.imageset/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/5.imageset/5.png -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "5.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/poster.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "interstellar3.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/poster.imageset/interstellar3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/Assets.xcassets/poster.imageset/interstellar3.jpg -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // tvOSCardAnimation 4 | // 5 | // Created by yangqitao on 15/9/21. 6 | // Copyright © 2015年 yangqitao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // tvOSCardAnimation 4 | // 5 | // Created by yangqitao on 15/9/21. 6 | // Copyright © 2015年 yangqitao. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "tvOSCardView.h" 11 | 12 | @interface ViewController () 13 | 14 | @end 15 | 16 | @implementation ViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | 21 | tvOSCardView *cardView = [[tvOSCardView alloc]init]; 22 | cardView.center = self.view.center; 23 | cardView.bounds = CGRectMake(0, 0, 150, 200); 24 | [self.view addSubview:cardView]; 25 | 26 | } 27 | 28 | 29 | - (void)didReceiveMemoryWarning { 30 | [super didReceiveMemoryWarning]; 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // tvOSCardAnimation 4 | // 5 | // Created by yangqitao on 15/9/21. 6 | // Copyright © 2015年 yangqitao. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimation/tvOSCardView/tvOSCardView.h: -------------------------------------------------------------------------------- 1 | // 2 | // tvOSCardView.h 3 | // tvOSCardAnimation 4 | // 5 | // Created by yangqitao on 15/9/22. 6 | // Copyright © 2015年 yangqitao. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface tvOSCardView : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimationTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Objective-C Version/tvOSCardAnimationDemo/tvOSCardAnimationUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCircleDemo-Swift/AnimatedCircleDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCircleDemo-Swift/AnimatedCircleDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/AnimatedCircleDemo-Swift/AnimatedCircleDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/AnimatedCircleDemo-Swift/AnimatedCircleDemo-Swift/Classes/CircleView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CircleView.swift 3 | // AnimatedCircleDemo-Swift 4 | // 5 | // Created by Kitten Yang on 1/18/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CircleView: UIView { 12 | 13 | var circleLayer = CircleLayer() 14 | 15 | override init(frame: CGRect) { 16 | super.init(frame: frame) 17 | circleLayer.frame = CGRectMake(0, 0, frame.size.width, frame.size.height) 18 | circleLayer.contentsScale = UIScreen.mainScreen().scale 19 | layer.addSublayer(circleLayer) 20 | } 21 | 22 | required init?(coder aDecoder: NSCoder) { 23 | fatalError("init(coder:) has not been implemented") 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCircleDemo-Swift/AnimatedCircleDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCircleDemo-Swift/AnimatedCircleDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCurveDemo-Swift/AnimatedCurveDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCurveDemo-Swift/AnimatedCurveDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/AnimatedCurveDemo-Swift/AnimatedCurveDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/AnimatedCurveDemo-Swift/AnimatedCurveDemo-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCurveDemo-Swift/AnimatedCurveDemo-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AnimatedCurveDemo-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F85F9971C4C0C160062A057 16 | 17 | primary 18 | 19 | 20 | 5F85F9AB1C4C0C1B0062A057 21 | 22 | primary 23 | 24 | 25 | 5F85F9B61C4C0C1C0062A057 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCurveDemo-Swift/AnimatedCurveDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/AnimatedCurveDemo-Swift/AnimatedCurveDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/DownloadButtonDemo-Swift/CADemos-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/DownloadButtonDemo-Swift/CADemos-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/DownloadButtonDemo-Swift/CADemos-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/DownloadButtonDemo-Swift/CADemos-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Swift Version/DownloadButtonDemo-Swift/CADemos-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CADemos-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F6650301C33D20D003BAC90 16 | 17 | primary 18 | 19 | 20 | 5F6650441C33D20D003BAC90 21 | 22 | primary 23 | 24 | 25 | 5F66504F1C33D20D003BAC90 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/DownloadButtonDemo-Swift/CADemos-Swift/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // CADemos-Swift 4 | // 5 | // Created by Kitten Yang on 12/30/15. 6 | // Copyright © 2015 Kitten Yang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | @IBOutlet weak var downloadButton: DownloadButton! 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | downloadButton.progressBarWidth = 200 18 | downloadButton.progressBarHeight = 30 19 | } 20 | 21 | override func didReceiveMemoryWarning() { 22 | super.didReceiveMemoryWarning() 23 | } 24 | 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Swift Version/DownloadButtonDemo-Swift/CADemos-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/DownloadButtonDemo-Swift/CADemos-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-Swift/Assets.xcassets/ball.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ball.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-Swift/Assets.xcassets/ball.imageset/ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-Swift/Assets.xcassets/ball.imageset/ball.png -------------------------------------------------------------------------------- /Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-Swift/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // DynamicActionBlockDemo-Swift 4 | // 5 | // Created by Kitten Yang on 1/2/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | let dynamicView = DynamicView(frame: view.bounds) 16 | view.addSubview(dynamicView) 17 | } 18 | 19 | override func didReceiveMemoryWarning() { 20 | super.didReceiveMemoryWarning() 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/DynamicActionBlockDemo-Swift/DynamicActionBlockDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/GooeySlideMenuDemo-Swift/GooeySlideMenuDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/GooeySlideMenuDemo-Swift/GooeySlideMenuDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/GooeySlideMenuDemo-Swift/GooeySlideMenuDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/GooeySlideMenuDemo-Swift/GooeySlideMenuDemo-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Swift Version/GooeySlideMenuDemo-Swift/GooeySlideMenuDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/GooeySlideMenuDemo-Swift/GooeySlideMenuDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-Swift/Assets.xcassets/pic01.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "pic01.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-Swift/Assets.xcassets/pic01.imageset/pic01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-Swift/Assets.xcassets/pic01.imageset/pic01.jpg -------------------------------------------------------------------------------- /Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/InteractiveCardDemo-Swift/InteractiveCardDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | JumpStarDemo-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5FFE11601C3D02A5001AE2AC 16 | 17 | primary 18 | 19 | 20 | 5FFE11741C3D02AA001AE2AC 21 | 22 | primary 23 | 24 | 25 | 5FFE117F1C3D02AA001AE2AC 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/blue_dot.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "blue_dot.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/blue_dot.imageset/blue_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/blue_dot.imageset/blue_dot.png -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/icon_star_incell.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_star_incell.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/icon_star_incell.imageset/icon_star_incell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/icon_star_incell.imageset/icon_star_incell.png -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/shadow_new.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "shadow_new.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/shadow_new.imageset/shadow_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/JumpStarDemo-Swift/JumpStarDemo-Swift/Assets.xcassets/shadow_new.imageset/shadow_new.png -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/JumpStarDemo-Swift/JumpStarDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/KYCuteView-Swift/KYCuteView-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/KYCuteView-Swift/KYCuteView-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/KYCuteView-Swift/KYCuteView-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/KYCuteView-Swift/KYCuteView-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Swift Version/KYCuteView-Swift/KYCuteView-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KYCuteView-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5FE4ECC91C4E67AE000BFA16 16 | 17 | primary 18 | 19 | 20 | 5FE4ECDD1C4E67AF000BFA16 21 | 22 | primary 23 | 24 | 25 | 5FE4ECE81C4E67AF000BFA16 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/KYCuteView-Swift/KYCuteView-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/KYCuteView-Swift/KYCuteView-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/KYGooeyMenu-Swift/KYGooeyMenu-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/KYGooeyMenu-Swift/KYGooeyMenu-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/KYGooeyMenu-Swift/KYGooeyMenu-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/KYGooeyMenu-Swift/KYGooeyMenu-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Swift Version/KYGooeyMenu-Swift/KYGooeyMenu-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KYGooeyMenu-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5FFE119D1C3E5C67001AE2AC 16 | 17 | primary 18 | 19 | 20 | 5FFE11B11C3E5C67001AE2AC 21 | 22 | primary 23 | 24 | 25 | 5FFE11BC1C3E5C67001AE2AC 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/KYGooeyMenu-Swift/KYGooeyMenu-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/KYGooeyMenu-Swift/KYGooeyMenu-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/KYPingTransition-Swift/KYPingTransition-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KYPingTransition-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F831AA21C3FFFF300305CA1 16 | 17 | primary 18 | 19 | 20 | 5F831AB61C3FFFF300305CA1 21 | 22 | primary 23 | 24 | 25 | 5F831AC11C3FFFF300305CA1 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift/Assets.xcassets/page1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_3477.PNG", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift/Assets.xcassets/page1.imageset/IMG_3477.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/KYPingTransition-Swift/KYPingTransition-Swift/Assets.xcassets/page1.imageset/IMG_3477.PNG -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift/Assets.xcassets/page2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IMG_3476.PNG", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-Swift/Assets.xcassets/page2.imageset/IMG_3476.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/KYPingTransition-Swift/KYPingTransition-Swift/Assets.xcassets/page2.imageset/IMG_3476.PNG -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/KYPingTransition-Swift/KYPingTransition-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/PulseLoader-Swift/PulseLoader-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/PulseLoader-Swift/PulseLoader-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/PulseLoader-Swift/PulseLoader-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/PulseLoader-Swift/PulseLoader-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | PulseLoader-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5FE4EFE91C60B6A60029AC3F 16 | 17 | primary 18 | 19 | 20 | 5FE4EFFD1C60B6A70029AC3F 21 | 22 | primary 23 | 24 | 25 | 5FE4F0081C60B6A70029AC3F 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/PulseLoader-Swift/PulseLoader-Swift/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // PulseLoader-Swift 4 | // 5 | // Created by Kitten Yang on 2/2/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | let pulseLoader = PulseLoader(frame: CGRect(origin: view.center, size: CGSize(width: 100, height: 100)), color: UIColor.redColor()) 17 | pulseLoader.center = view.center 18 | view.addSubview(pulseLoader) 19 | 20 | pulseLoader.startToPluse() 21 | } 22 | 23 | override func didReceiveMemoryWarning() { 24 | super.didReceiveMemoryWarning() 25 | } 26 | 27 | 28 | } 29 | 30 | -------------------------------------------------------------------------------- /Swift Version/PulseLoader-Swift/PulseLoader-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/PulseLoader-Swift/PulseLoader-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/ReplicatorLoaderDemo-Swift/ReplicatorLoaderDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/ReplicatorLoaderDemo-Swift/ReplicatorLoaderDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/ReplicatorLoaderDemo-Swift/ReplicatorLoaderDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/ReplicatorLoaderDemo-Swift/ReplicatorLoaderDemo-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Swift Version/ReplicatorLoaderDemo-Swift/ReplicatorLoaderDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/ReplicatorLoaderDemo-Swift/ReplicatorLoaderDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SnowEffectDemo-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F444F321C47F74F00FA2868 16 | 17 | primary 18 | 19 | 20 | 5F444F461C47F75000FA2868 21 | 22 | primary 23 | 24 | 25 | 5F444F511C47F75000FA2868 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-Swift/Assets.xcassets/snow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "snow.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-Swift/Assets.xcassets/snow.imageset/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-Swift/Assets.xcassets/snow.imageset/snow.png -------------------------------------------------------------------------------- /Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/SnowEffectDemo-Swift/SnowEffectDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift/Assets.xcassets/home_demo.imageset/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift/Assets.xcassets/home_demo.imageset/1.png -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift/Assets.xcassets/home_demo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift/Assets.xcassets/logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "logo.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift/Assets.xcassets/logo.imageset/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift/Assets.xcassets/logo.imageset/logo.png -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-Swift/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // SplashAnimiationDemo-Swift 4 | // 5 | // Created by Kitten Yang on 1/15/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | title = "首页" 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/SplashAnimiationDemo-Swift/SplashAnimiationDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-Swift.xcodeproj/xcuserdata/KittenYang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | UIDynamicsDemo-Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 5F85F91F1C495F580062A057 16 | 17 | primary 18 | 19 | 20 | 5F85F9331C495F590062A057 21 | 22 | primary 23 | 24 | 25 | 5F85F93E1C495F590062A057 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-Swift/Assets.xcassets/lockScreen.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Screenshot_2015-09-07-03-37-02-124_锁屏.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-Swift/Assets.xcassets/lockScreen.imageset/Screenshot_2015-09-07-03-37-02-124_锁屏.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-Swift/Assets.xcassets/lockScreen.imageset/Screenshot_2015-09-07-03-37-02-124_锁屏.png -------------------------------------------------------------------------------- /Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/UIDynamicsDemo-Swift/UIDynamicsDemo-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift.xcodeproj/project.xcworkspace/xcuserdata/KittenYang.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/1.imageset/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/1.imageset/3.png -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "3.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/2.imageset/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/2.imageset/1.png -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/3.imageset/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/3.imageset/2.png -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "2.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/4.imageset/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/4.imageset/4.png -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "4.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/5.imageset/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/5.imageset/5.png -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "5.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/poster.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "interstellar3.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/poster.imageset/interstellar3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KittenYang/A-GUIDE-TO-iOS-ANIMATION/38ba4eb87e003213c94187d1f0f06d9146606f89/Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/Assets.xcassets/poster.imageset/interstellar3.jpg -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-Swift/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // tvOSCardAnimation-Swift 4 | // 5 | // Created by Kitten Yang on 1/15/16. 6 | // Copyright © 2016 Kitten Yang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | let cardView = tvOSCardView() 17 | cardView.center = view.center 18 | cardView.bounds = CGRect(x: 0, y: 0, width: 150, height: 200) 19 | view.addSubview(cardView) 20 | 21 | } 22 | 23 | override func didReceiveMemoryWarning() { 24 | super.didReceiveMemoryWarning() 25 | } 26 | 27 | 28 | } 29 | 30 | -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-SwiftTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Swift Version/tvOSCardAnimation-Swift/tvOSCardAnimation-SwiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | --------------------------------------------------------------------------------