├── LXDAnimateButton ├── LXDAnimateButton.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LXDAnimateButton.xcscheme │ │ └── xcschememanagement.plist ├── LXDAnimateButton │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── LXDAnimateButtonTests │ ├── Info.plist │ └── LXDAnimateButtonTests.swift └── LXDAnimateButtonUITests │ ├── Info.plist │ └── LXDAnimateButtonUITests.swift ├── LXDAnimationSecondDemo-master ├── LXDAnimationSecondDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ └── xcschemes │ │ ├── LXDAnimationSecondDemo.xcscheme │ │ └── xcschememanagement.plist ├── LXDAnimationSecondDemo │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── background.imageset │ │ │ ├── Contents.json │ │ │ └── background@2x.png │ │ ├── indicator.imageset │ │ │ ├── Contents.json │ │ │ └── indicator@2x.png │ │ └── leaf.imageset │ │ │ ├── Contents.json │ │ │ └── leaf@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── LXDAnimationSecondDemoTests │ ├── Info.plist │ └── LXDAnimationSecondDemoTests.m └── LXDAnimationSecondDemoUITests │ ├── Info.plist │ └── LXDAnimationSecondDemoUITests.m ├── LXDAutoLayoutAnimationDemo-master ├── LXDAutoLayoutAnimationDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LXDAutoLayoutAnimationDemo.xcscheme │ │ └── xcschememanagement.plist ├── LXDAutoLayoutAnimationDemo │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── article_author.imageset │ │ │ ├── Contents.json │ │ │ ├── article_author.png │ │ │ ├── article_author@2x.png │ │ │ └── article_author@3x.png │ │ └── drop_down.imageset │ │ │ ├── Contents.json │ │ │ ├── drop_down.png │ │ │ ├── drop_down@2x.png │ │ │ └── drop_down@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── LXDAnimateButton.h │ ├── LXDAnimateButton.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── LXDAutoLayoutAnimationDemoTests │ ├── Info.plist │ └── LXDAutoLayoutAnimationDemoTests.m └── LXDAutoLayoutAnimationDemoUITests │ ├── Info.plist │ └── LXDAutoLayoutAnimationDemoUITests.m ├── LXDBaseAnimation-master ├── LXDBaseAnimation.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ └── xcschemes │ │ ├── LXDBaseAnimation.xcscheme │ │ └── xcschememanagement.plist ├── LXDBaseAnimation │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── number_background.imageset │ │ │ ├── Contents.json │ │ │ └── number_background@2x.png │ │ └── red_background.imageset │ │ │ ├── Contents.json │ │ │ └── red_background@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── LXDSegmentControl.h │ ├── LXDSegmentControl.m │ ├── LXDSegmentControlConfiguration.h │ ├── LXDSegmentControlConfiguration.m │ ├── LXDSegmentControlDefine.h │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── LXDBaseAnimationTests │ ├── Info.plist │ └── LXDBaseAnimationTests.m └── LXDBaseAnimationUITests │ ├── Info.plist │ └── LXDBaseAnimationUITests.m ├── LXDCoreAnimation ├── LXDCoreAnimation.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ └── xcschemes │ │ ├── LXDCoreAnimation.xcscheme │ │ └── xcschememanagement.plist ├── LXDCoreAnimation │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── LXDActionView.swift │ └── ViewController.swift ├── LXDCoreAnimationTests │ ├── Info.plist │ └── LXDCoreAnimationTests.swift └── LXDCoreAnimationUITests │ ├── Info.plist │ └── LXDCoreAnimationUITests.swift ├── LXDCustomLayer-master ├── LXDProgressLayer.h ├── LXDProgressLayer.m ├── LXDProgressView.h └── LXDProgressView.m ├── LXDDesignMode ├── LXDDesignMode.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LXDDesignMode.xcscheme │ │ └── xcschememanagement.plist ├── LXDDesignMode │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── LXDDesignModeTests │ ├── Info.plist │ └── LXDDesignModeTests.swift └── LXDDesignModeUITests │ ├── Info.plist │ └── LXDDesignModeUITests.swift ├── LXDLayerDemo-master ├── LXDCustomLayer │ ├── LXDProgressLayer.h │ ├── LXDProgressLayer.m │ ├── LXDProgressView.h │ └── LXDProgressView.m ├── LXDLayerDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LXDLayerDemo.xcscheme │ │ └── xcschememanagement.plist ├── LXDLayerDemo │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── LXDProgressViewController.h │ ├── LXDProgressViewController.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── LXDLayerDemoTests │ ├── Info.plist │ └── LXDLayerDemoTests.m ├── LXDLayerDemoUITests │ ├── Info.plist │ └── LXDLayerDemoUITests.m └── images │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ └── effect.gif ├── LXDMaskViewAnimation ├── LXDMaskViewAnimation.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ └── xcschemes │ │ ├── LXDMaskViewAnimation.xcscheme │ │ └── xcschememanagement.plist ├── LXDMaskViewAnimation │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── 1.imageset │ │ │ ├── 1.jpeg │ │ │ ├── 1@2x.jpg │ │ │ └── Contents.json │ │ ├── 2.imageset │ │ │ ├── 2.jpeg │ │ │ ├── 2@2x.jpg │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── banner1.imageset │ │ │ ├── Contents.json │ │ │ ├── banner1.jpeg │ │ │ └── banner1@2x.jpg │ │ ├── banner2.imageset │ │ │ ├── Contents.json │ │ │ ├── banner2.jpeg │ │ │ └── banner2@2x.jpg │ │ ├── banner3.imageset │ │ │ ├── Contents.json │ │ │ ├── banner3.jpeg │ │ │ └── banner3@2x.jpg │ │ └── banner4.imageset │ │ │ ├── Contents.json │ │ │ ├── banner4.jpeg │ │ │ └── banner4@2x.jpg │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── UIImageView+LXDBannerAnimation.h │ ├── UIImageView+LXDBannerAnimation.m │ ├── UIView+LXDFadeAnimation.h │ ├── UIView+LXDFadeAnimation.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── LXDMaskViewAnimationTests │ ├── Info.plist │ └── LXDMaskViewAnimationTests.m └── LXDMaskViewAnimationUITests │ ├── Info.plist │ └── LXDMaskViewAnimationUITests.m ├── LXDReplicateDemo ├── LXDReplicateDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LXDReplicateDemo.xcscheme │ │ └── xcschememanagement.plist ├── LXDReplicateDemo │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── GCD │ │ ├── LXDGCD.h │ │ ├── LXDGroup.h │ │ ├── LXDGroup.m │ │ ├── LXDQueue.h │ │ ├── LXDQueue.m │ │ ├── LXDSemaphore.h │ │ ├── LXDSemaphore.m │ │ ├── LXDTimer.h │ │ └── LXDTimer.m │ ├── Info.plist │ ├── OC-Swift-Bridge-Header.h │ └── ViewController.swift ├── LXDReplicateDemoTests │ ├── Info.plist │ └── LXDReplicateDemoTests.swift └── LXDReplicateDemoUITests │ ├── Info.plist │ └── LXDReplicateDemoUITests.swift ├── LXDSlideMenu-master ├── LXDSlideMenuObjectiveC │ ├── LXDSlideMenuObjectiveC.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── linxinda.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── LXDSlideMenuObjectiveC.xcscheme │ │ │ └── xcschememanagement.plist │ ├── LXDSlideMenuObjectiveC │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── login.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── login@2x.png │ │ │ │ └── login@3x.png │ │ │ ├── password.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── password@2x.png │ │ │ │ └── password@3x.png │ │ │ ├── remeber.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── remeber@2x.png │ │ │ │ └── remeber@3x.png │ │ │ └── remeber_hl.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── remeber_hl@2x.png │ │ │ │ └── remeber_hl@3x.png │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── LXDCommonViewController.h │ │ ├── LXDCommonViewController.m │ │ ├── LXDMainViewController.h │ │ ├── LXDMainViewController.m │ │ ├── LXDSlideManager.h │ │ ├── LXDSlideManager.m │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m │ ├── LXDSlideMenuObjectiveCTests │ │ ├── Info.plist │ │ └── LXDSlideMenuObjectiveCTests.m │ └── LXDSlideMenuObjectiveCUITests │ │ ├── Info.plist │ │ └── LXDSlideMenuObjectiveCUITests.m └── LXDSlideMenuSwift │ ├── LXDSlideMenuSwift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LXDSlideMenuSwift.xcscheme │ │ └── xcschememanagement.plist │ ├── LXDSlideMenuSwift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── login.imageset │ │ │ ├── Contents.json │ │ │ ├── login@2x.png │ │ │ └── login@3x.png │ │ ├── password.imageset │ │ │ ├── Contents.json │ │ │ ├── password@2x.png │ │ │ └── password@3x.png │ │ ├── remeber.imageset │ │ │ ├── Contents.json │ │ │ ├── remeber@2x.png │ │ │ └── remeber@3x.png │ │ └── remeber_hl.imageset │ │ │ ├── Contents.json │ │ │ ├── remeber_hl@2x.png │ │ │ └── remeber_hl@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── LXDCommonViewController.swift │ ├── LXDMainViewController.swift │ ├── LXDSlideManager.swift │ └── ViewController.swift │ ├── LXDSlideMenuSwiftTests │ ├── Info.plist │ └── LXDSlideMenuSwiftTests.swift │ └── LXDSlideMenuSwiftUITests │ ├── Info.plist │ └── LXDSlideMenuSwiftUITests.swift ├── LXDSwiftAnimation ├── LXDSwiftAnimation.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LXDSwiftAnimation.xcscheme │ │ └── xcschememanagement.plist ├── LXDSwiftAnimation │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── alphaBG.imageset │ │ │ ├── Contents.json │ │ │ └── alphaBG@2x.png │ │ ├── navigtionBg.imageset │ │ │ ├── Contents.json │ │ │ └── navigtionBg.png │ │ └── placeholder.imageset │ │ │ ├── Contents.json │ │ │ └── placeholder@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── TableViewHeaderView.swift │ └── ViewController.swift ├── LXDSwiftAnimationTests │ ├── Info.plist │ └── LXDSwiftAnimationTests.swift └── LXDSwiftAnimationUITests │ ├── Info.plist │ └── LXDSwiftAnimationUITests.swift ├── LXDTextFieldAdjust ├── LXDTextFieldAdjust.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── LXDTextFieldAdjust.xcscmblueprint │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LXDTextFieldAdjust.xcscheme │ │ └── xcschememanagement.plist ├── LXDTextFieldAdjust │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── LXDTextFieldExtension │ │ ├── LXDEmojiTextRestrict.h │ │ ├── LXDEmojiTextRestrict.m │ │ ├── LXDTextRestrict.h │ │ ├── LXDTextRestrict.m │ │ ├── LXDTextRestrict │ │ │ ├── LXDTextRestrict.h │ │ │ ├── LXDTextRestrict.m │ │ │ ├── UITextField+LXDRestrict.h │ │ │ └── UITextField+LXDRestrict.m │ │ ├── UITextField+LXDAdjust.h │ │ ├── UITextField+LXDAdjust.m │ │ ├── UITextField+LXDRestrict.h │ │ └── UITextField+LXDRestrict.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── LXDTextFieldAdjustTests │ ├── Info.plist │ └── LXDTextFieldAdjustTests.m └── LXDTextFieldAdjustUITests │ ├── Info.plist │ └── LXDTextFieldAdjustUITests.m ├── LXDUIViewAnimation-master ├── LXDUIViewAnimation.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── linxinda.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ └── xcschemes │ │ ├── LXDUIViewAnimation.xcscheme │ │ └── xcschememanagement.plist ├── LXDUIViewAnimation │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── bg-sunny.imageset │ │ │ ├── Contents.json │ │ │ ├── bg-sunny@2x.png │ │ │ └── bg-sunny@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── LXDUIViewAnimationTests │ ├── Info.plist │ └── LXDUIViewAnimationTests.m └── LXDUIViewAnimationUITests │ ├── Info.plist │ └── LXDUIViewAnimationUITests.m └── TimerAnimation ├── TimerAnimation.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── linxinda.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── linxinda.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── TimerAnimation.xcscheme │ └── xcschememanagement.plist ├── TimerAnimation ├── AppDelegate.swift ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── SpringViewController.swift ├── SpringViewController.xib ├── ViewController.swift ├── XiuXiuViewController.swift └── XiuXiuViewController.xib ├── TimerAnimationTests ├── Info.plist └── TimerAnimationTests.swift └── TimerAnimationUITests ├── Info.plist └── TimerAnimationUITests.swift /LXDAnimateButton/LXDAnimateButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButton.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAnimateButton/LXDAnimateButton.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButton.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButton.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDAnimateButton.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF50B7C81D8647FA00789716 16 | 17 | primary 18 | 19 | 20 | EF50B7DC1D8647FA00789716 21 | 22 | primary 23 | 24 | 25 | EF50B7E71D8647FA00789716 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButton/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "ipad", 5 | "size" : "29x29", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "ipad", 10 | "size" : "29x29", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "ipad", 15 | "size" : "40x40", 16 | "scale" : "1x" 17 | }, 18 | { 19 | "idiom" : "ipad", 20 | "size" : "40x40", 21 | "scale" : "2x" 22 | }, 23 | { 24 | "idiom" : "ipad", 25 | "size" : "76x76", 26 | "scale" : "1x" 27 | }, 28 | { 29 | "idiom" : "ipad", 30 | "size" : "76x76", 31 | "scale" : "2x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButton/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations~ipad 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationPortraitUpsideDown 37 | UIInterfaceOrientationLandscapeLeft 38 | UIInterfaceOrientationLandscapeRight 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButtonTests/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 | -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButtonTests/LXDAnimateButtonTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDAnimateButtonTests.swift 3 | // LXDAnimateButtonTests 4 | // 5 | // Created by linxinda on 16/9/12. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import LXDAnimateButton 11 | 12 | class LXDAnimateButtonTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButtonUITests/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 | -------------------------------------------------------------------------------- /LXDAnimateButton/LXDAnimateButtonUITests/LXDAnimateButtonUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDAnimateButtonUITests.swift 3 | // LXDAnimateButtonUITests 4 | // 5 | // Created by linxinda on 16/9/12. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class LXDAnimateButtonUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAnimationSecondDemo-master/LXDAnimationSecondDemo.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDAnimationSecondDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF0C5AF71C60AD1300D00428 16 | 17 | primary 18 | 19 | 20 | EF0C5B101C60AD1300D00428 21 | 22 | primary 23 | 24 | 25 | EF0C5B1B1C60AD1300D00428 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LXDAnimationSecondDemo 4 | // 5 | // Created by 林欣达 on 16/2/2. 6 | // Copyright © 2016年 SindriLin. 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 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.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 | } -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "background@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/background.imageset/background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/background.imageset/background@2x.png -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/indicator.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "indicator@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/indicator.imageset/indicator@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/indicator.imageset/indicator@2x.png -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/leaf.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "leaf@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/leaf.imageset/leaf@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/Assets.xcassets/leaf.imageset/leaf@2x.png -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LXDAnimationSecondDemo 4 | // 5 | // Created by 林欣达 on 16/2/2. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LXDAnimationSecondDemo 4 | // 5 | // Created by 林欣达 on 16/2/2. 6 | // Copyright © 2016年 SindriLin. 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 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemoTests/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 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemoTests/LXDAnimationSecondDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDAnimationSecondDemoTests.m 3 | // LXDAnimationSecondDemoTests 4 | // 5 | // Created by 林欣达 on 16/2/2. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDAnimationSecondDemoTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDAnimationSecondDemoTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemoUITests/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 | -------------------------------------------------------------------------------- /LXDAnimationSecondDemo-master/LXDAnimationSecondDemoUITests/LXDAnimationSecondDemoUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDAnimationSecondDemoUITests.m 3 | // LXDAnimationSecondDemoUITests 4 | // 5 | // Created by 林欣达 on 16/2/2. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDAnimationSecondDemoUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDAnimationSecondDemoUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDAutoLayoutAnimationDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF0FFC6C1C91C62300F04F8C 16 | 17 | primary 18 | 19 | 20 | EF0FFC851C91C62300F04F8C 21 | 22 | primary 23 | 24 | 25 | EF0FFC901C91C62300F04F8C 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LXDAutoLayoutAnimationDemo 4 | // 5 | // Created by linxinda on 16/3/10. 6 | // Copyright © 2016年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.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 | } -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/article_author.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "article_author.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "article_author@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "article_author@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/article_author.imageset/article_author.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/article_author.imageset/article_author.png -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/article_author.imageset/article_author@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/article_author.imageset/article_author@2x.png -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/article_author.imageset/article_author@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/article_author.imageset/article_author@3x.png -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/drop_down.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "drop_down.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "drop_down@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "drop_down@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/drop_down.imageset/drop_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/drop_down.imageset/drop_down.png -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/drop_down.imageset/drop_down@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/drop_down.imageset/drop_down@2x.png -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/drop_down.imageset/drop_down@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/Assets.xcassets/drop_down.imageset/drop_down@3x.png -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/LXDAnimateButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDAnimateButton.h 3 | // LXDAutoLayoutAnimationDemo 4 | // 5 | // Created by linxinda on 16/3/17. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | IB_DESIGNABLE 12 | @interface LXDAnimateButton : UIButton 13 | 14 | @property (nonatomic, assign) IBInspectable CGFloat radius; 15 | 16 | - (void)start; 17 | - (void)stop; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LXDAutoLayoutAnimationDemo 4 | // 5 | // Created by linxinda on 16/3/10. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LXDAutoLayoutAnimationDemo 4 | // 5 | // Created by linxinda on 16/3/10. 6 | // Copyright © 2016年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemoTests/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 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemoTests/LXDAutoLayoutAnimationDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDAutoLayoutAnimationDemoTests.m 3 | // LXDAutoLayoutAnimationDemoTests 4 | // 5 | // Created by linxinda on 16/3/10. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDAutoLayoutAnimationDemoTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDAutoLayoutAnimationDemoTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemoUITests/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 | -------------------------------------------------------------------------------- /LXDAutoLayoutAnimationDemo-master/LXDAutoLayoutAnimationDemoUITests/LXDAutoLayoutAnimationDemoUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDAutoLayoutAnimationDemoUITests.m 3 | // LXDAutoLayoutAnimationDemoUITests 4 | // 5 | // Created by linxinda on 16/3/10. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDAutoLayoutAnimationDemoUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDAutoLayoutAnimationDemoUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDBaseAnimation-master/LXDBaseAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDBaseAnimation.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF8B968A1C760A880025FAEE 16 | 17 | primary 18 | 19 | 20 | EF8B96A31C760A880025FAEE 21 | 22 | primary 23 | 24 | 25 | EF8B96AE1C760A880025FAEE 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LXDBaseAnimation 4 | // 5 | // Created by linxinda on 16/2/18. 6 | // Copyright © 2016年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/Assets.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 | } -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/Assets.xcassets/number_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "number_background@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/Assets.xcassets/number_background.imageset/number_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDBaseAnimation-master/LXDBaseAnimation/Assets.xcassets/number_background.imageset/number_background@2x.png -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/Assets.xcassets/red_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "red_background@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/Assets.xcassets/red_background.imageset/red_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDBaseAnimation-master/LXDBaseAnimation/Assets.xcassets/red_background.imageset/red_background@2x.png -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/LXDSegmentControlDefine.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSegmentControlDefine.h 3 | // LXDTwoDimensionalBarcode 4 | // 5 | // Created by linxinda on 15/10/26. 6 | // Copyright © 2015年 cnpayany. All rights reserved. 7 | // 8 | 9 | #ifndef LXDSegmentControlDefine_h 10 | #define LXDSegmentControlDefine_h 11 | 12 | #define SMALLSCALE 0.75f 13 | #define INITSCALE 1.f 14 | #define BIGSCALE 1.25f 15 | #define ANIMATION_DURATION 0.15f 16 | #define CLEAR_COLOR [UIColor clearColor] 17 | 18 | 19 | /*! 分栏控制器类型。不同类型有不同默认属性*/ 20 | typedef enum 21 | { 22 | /*! 滑块移动(默认)*/ 23 | LXDSegmentControlTypeSlideBlock = 0, 24 | /*! 选中类型*/ 25 | LXDSegmentControlTypeSelectBlock, 26 | /*! 选中放大*/ 27 | LXDSegmentControlTypeScaleTitle 28 | } LXDSegmentControlType; 29 | 30 | 31 | static inline UIColor * kRGB(CGFloat red, CGFloat green, CGFloat blue) 32 | { 33 | return [UIColor colorWithRed: red/255.f green: green/255.f blue: blue/255.f alpha: 1.f]; 34 | } 35 | 36 | static inline UIColor * kNumberColor(NSUInteger rgb) 37 | { 38 | NSUInteger red = (rgb >> 16) & 0xff; 39 | NSUInteger green = (rgb >> 8) & 0xff; 40 | NSUInteger blue = rgb & 0xff; 41 | return kRGB(red, green, blue); 42 | } 43 | 44 | #endif /* LXDSegmentControlDefine_h */ 45 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LXDBaseAnimation 4 | // 5 | // Created by linxinda on 16/2/18. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimation/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LXDBaseAnimation 4 | // 5 | // Created by linxinda on 16/2/18. 6 | // Copyright © 2016年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimationTests/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 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimationTests/LXDBaseAnimationTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDBaseAnimationTests.m 3 | // LXDBaseAnimationTests 4 | // 5 | // Created by linxinda on 16/2/18. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDBaseAnimationTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDBaseAnimationTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimationUITests/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 | -------------------------------------------------------------------------------- /LXDBaseAnimation-master/LXDBaseAnimationUITests/LXDBaseAnimationUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDBaseAnimationUITests.m 3 | // LXDBaseAnimationUITests 4 | // 5 | // Created by linxinda on 16/2/18. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDBaseAnimationUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDBaseAnimationUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDCoreAnimation/LXDCoreAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimation.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDCoreAnimation.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF50CA2A1D0668B5007250C9 16 | 17 | primary 18 | 19 | 20 | EF50CA3E1D0668B5007250C9 21 | 22 | primary 23 | 24 | 25 | EF50CA491D0668B5007250C9 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimation/Assets.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 | } -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimation/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimation/LXDActionView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDActionView.swift 3 | // LXDCoreAnimation 4 | // 5 | // Created by 林欣达 on 16/6/7. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LXDActionLayer: CALayer { 12 | override func addAnimation(anim: CAAnimation, forKey key: String?) { 13 | print("***********************************************") 14 | print("Layer will add an animation: \(anim)") 15 | super.addAnimation(anim, forKey: key) 16 | } 17 | } 18 | 19 | class LXDActionView: UIView { 20 | 21 | override class func layerClass() -> AnyClass { 22 | return LXDActionLayer.classForCoder() 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimationTests/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 | -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimationTests/LXDCoreAnimationTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDCoreAnimationTests.swift 3 | // LXDCoreAnimationTests 4 | // 5 | // Created by 林欣达 on 16/6/7. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import LXDCoreAnimation 11 | 12 | class LXDCoreAnimationTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimationUITests/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 | -------------------------------------------------------------------------------- /LXDCoreAnimation/LXDCoreAnimationUITests/LXDCoreAnimationUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDCoreAnimationUITests.swift 3 | // LXDCoreAnimationUITests 4 | // 5 | // Created by 林欣达 on 16/6/7. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class LXDCoreAnimationUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDCustomLayer-master/LXDProgressLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDProgressLayer.h 3 | // LXDProgressView 4 | // 5 | // Created by 林欣达 on 15/11/17. 6 | // Copyright © 2015年 sindri lin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDProgressLayer : CALayer 12 | 13 | @property (nonatomic, assign) CGFloat progress; 14 | @property (nonatomic, assign) CGColorRef fillColor; 15 | @property (nonatomic, assign) CGColorRef strokeColor; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /LXDCustomLayer-master/LXDProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDProgressView.h 3 | // LXDProgressView 4 | // 5 | // Created by 林欣达 on 15/11/17. 6 | // Copyright © 2015年 sindri lin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LXDProgressLayer.h" 11 | 12 | @interface LXDProgressView : UIView 13 | 14 | @property (nonatomic, strong) LXDProgressLayer * progressLayer; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /LXDCustomLayer-master/LXDProgressView.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDProgressView.m 3 | // LXDProgressView 4 | // 5 | // Created by 林欣达 on 15/11/17. 6 | // Copyright © 2015年 sindri lin. All rights reserved. 7 | // 8 | 9 | #import "LXDProgressView.h" 10 | 11 | @implementation LXDProgressView 12 | 13 | - (instancetype)initWithFrame: (CGRect)frame 14 | { 15 | if (self = [super initWithFrame: frame]) { 16 | self.progressLayer = [LXDProgressLayer layer]; 17 | self.progressLayer.fillColor = [UIColor orangeColor].CGColor; 18 | self.progressLayer.strokeColor = [UIColor blueColor].CGColor; 19 | self.progressLayer.frame = self.bounds; 20 | self.progressLayer.contentsScale = [UIScreen mainScreen].scale; 21 | [self.layer addSublayer: self.progressLayer]; 22 | } 23 | return self; 24 | } 25 | 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignMode.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignMode.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDDesignMode/LXDDesignMode.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignMode.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignMode.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDDesignMode.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF09C6A01DA8E75200A5513B 16 | 17 | primary 18 | 19 | 20 | EF09C6B41DA8E75200A5513B 21 | 22 | primary 23 | 24 | 25 | EF09C6BF1DA8E75200A5513B 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignMode/Assets.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 | } -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignMode/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignModeTests/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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignModeTests/LXDDesignModeTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDDesignModeTests.swift 3 | // LXDDesignModeTests 4 | // 5 | // Created by linxinda on 16/10/8. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import LXDDesignMode 11 | 12 | class LXDDesignModeTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignModeUITests/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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LXDDesignMode/LXDDesignModeUITests/LXDDesignModeUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDDesignModeUITests.swift 3 | // LXDDesignModeUITests 4 | // 5 | // Created by linxinda on 16/10/8. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class LXDDesignModeUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDCustomLayer/LXDProgressLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDProgressLayer.h 3 | // LXDProgressView 4 | // 5 | // Created by 林欣达 on 15/11/17. 6 | // Copyright © 2015年 sindri lin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef void(^LXDProgressReport)(NSUInteger progress, CGRect textRect, CGColorRef textColor); 12 | 13 | @interface LXDProgressLayer : CALayer 14 | 15 | @property (nonatomic, copy) LXDProgressReport report; 16 | 17 | @property (nonatomic, assign) CGFloat progress; 18 | @property (nonatomic, assign) CGFloat strokeEnd; 19 | @property (nonatomic, assign) CGColorRef fillColor; 20 | @property (nonatomic, assign) CGColorRef strokeColor; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDCustomLayer/LXDProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDProgressView.h 3 | // LXDProgressView 4 | // 5 | // Created by 林欣达 on 15/11/17. 6 | // Copyright © 2015年 sindri lin. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LXDProgressLayer.h" 11 | 12 | @interface LXDProgressView : UIView 13 | 14 | @property (nonatomic, assign) CGFloat progress; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDLayerDemo-master/LXDLayerDemo.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDLayerDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF41161C1BFB4E0500B20B48 16 | 17 | primary 18 | 19 | 20 | EF4116351BFB4E0500B20B48 21 | 22 | primary 23 | 24 | 25 | EF4116401BFB4E0500B20B48 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LXDLayerDemo 4 | // 5 | // Created by linxinda on 15/11/17. 6 | // Copyright © 2015年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo/Assets.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 | } -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo/LXDProgressViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDProgressViewController.h 3 | // LXDLayerDemo 4 | // 5 | // Created by linxinda on 15/11/17. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDProgressViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo/LXDProgressViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDProgressViewController.m 3 | // LXDLayerDemo 4 | // 5 | // Created by linxinda on 15/11/17. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDProgressViewController.h" 10 | #import "LXDProgressView.h" 11 | 12 | @interface LXDProgressViewController () 13 | 14 | @property (nonatomic, strong) LXDProgressView * progressView; 15 | 16 | @end 17 | 18 | @implementation LXDProgressViewController 19 | 20 | - (void)viewDidLoad { 21 | [super viewDidLoad]; 22 | 23 | _progressView = [[LXDProgressView alloc] initWithFrame: CGRectMake(0, 80, CGRectGetWidth(self.view.frame), CGRectGetWidth(self.view.frame))]; 24 | _progressView.progress = 0.f; 25 | _progressView.backgroundColor = [UIColor lightGrayColor]; 26 | [self.view addSubview: _progressView]; 27 | } 28 | 29 | - (void)didReceiveMemoryWarning { 30 | [super didReceiveMemoryWarning]; 31 | } 32 | 33 | - (IBAction)changeProgress:(UISlider *)sender 34 | { 35 | self.progressView.progress = sender.value; 36 | } 37 | 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LXDLayerDemo 4 | // 5 | // Created by linxinda on 15/11/17. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UITableViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // LXDLayerDemo 4 | // 5 | // Created by linxinda on 15/11/17. 6 | // Copyright © 2015年 sindriLin. 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 | } 20 | 21 | - (void)didReceiveMemoryWarning { 22 | [super didReceiveMemoryWarning]; 23 | } 24 | 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LXDLayerDemo 4 | // 5 | // Created by linxinda on 15/11/17. 6 | // Copyright © 2015年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemoTests/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 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemoTests/LXDLayerDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDLayerDemoTests.m 3 | // LXDLayerDemoTests 4 | // 5 | // Created by linxinda on 15/11/17. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDLayerDemoTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDLayerDemoTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemoUITests/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 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/LXDLayerDemoUITests/LXDLayerDemoUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDLayerDemoUITests.m 3 | // LXDLayerDemoUITests 4 | // 5 | // Created by linxinda on 15/11/17. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDLayerDemoUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDLayerDemoUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /LXDLayerDemo-master/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDLayerDemo-master/images/1.png -------------------------------------------------------------------------------- /LXDLayerDemo-master/images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDLayerDemo-master/images/2.png -------------------------------------------------------------------------------- /LXDLayerDemo-master/images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDLayerDemo-master/images/3.png -------------------------------------------------------------------------------- /LXDLayerDemo-master/images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDLayerDemo-master/images/4.png -------------------------------------------------------------------------------- /LXDLayerDemo-master/images/effect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDLayerDemo-master/images/effect.gif -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDMaskViewAnimation.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF8A99011CE47A64006F382A 16 | 17 | primary 18 | 19 | 20 | EF8A991A1CE47A64006F382A 21 | 22 | primary 23 | 24 | 25 | EF8A99251CE47A64006F382A 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LXDMaskViewAnimation 4 | // 5 | // Created by 林欣达 on 16/5/10. 6 | // Copyright © 2016年 CNPay. 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 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/1.imageset/1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/1.imageset/1.jpeg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/1.imageset/1@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/1.imageset/1@2x.jpg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "1.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "1@2x.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/2.imageset/2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/2.imageset/2.jpeg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/2.imageset/2@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/2.imageset/2@2x.jpg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "2.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "2@2x.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.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 | } -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "banner1.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "banner1@2x.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner1.imageset/banner1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner1.imageset/banner1.jpeg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner1.imageset/banner1@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner1.imageset/banner1@2x.jpg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "banner2.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "banner2@2x.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner2.imageset/banner2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner2.imageset/banner2.jpeg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner2.imageset/banner2@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner2.imageset/banner2@2x.jpg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "banner3.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "banner3@2x.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner3.imageset/banner3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner3.imageset/banner3.jpeg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner3.imageset/banner3@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner3.imageset/banner3@2x.jpg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "banner4.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "banner4@2x.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner4.imageset/banner4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner4.imageset/banner4.jpeg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner4.imageset/banner4@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDMaskViewAnimation/LXDMaskViewAnimation/Assets.xcassets/banner4.imageset/banner4@2x.jpg -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/UIImageView+LXDBannerAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+LXDBannerAnimation.h 3 | // LXDPersonalBlog 4 | // 5 | // Created by 林欣达 on 16/5/12. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import "UIView+LXDFadeAnimation.h" 10 | 11 | #define LXDFADEDURATION 2. 12 | /*! 13 | * @brief 图片轮播广告页碎片化动画 14 | */ 15 | @interface UIImageView (LXDBannerAnimation) 16 | 17 | /*! 18 | * @brief 设置后停止动画 19 | */ 20 | @property (nonatomic, assign) BOOL stop; 21 | /*! 22 | * @brief 每次切换图片的动画时长1.5~2.5 23 | */ 24 | @property (nonatomic, assign) NSTimeInterval fadeDuration; 25 | /*! 26 | * @brief 轮播图片数组 27 | */ 28 | @property (nonatomic, strong) NSArray * bannerImages; 29 | 30 | - (void)fadeBanner; 31 | - (void)fadeBannerWithImages: (NSArray *)images; 32 | - (void)stopBanner; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/UIView+LXDFadeAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+LXDFadeAnimation.h 3 | // LXDPersonalBlog 4 | // 5 | // Created by 林欣达 on 16/5/10. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define LXDMAXDURATION 1.2 12 | #define LXDMINDURATION .2 13 | #define LXDMULTIPLED .25 14 | 15 | /*! 16 | * @brief UIView的方块渐变隐藏动画 17 | */ 18 | @interface UIView (LXDFadeAnimation) 19 | 20 | /*! 21 | * @brief 视图是否隐藏 22 | */ 23 | @property (nonatomic, assign, readonly) BOOL isFade; 24 | /*! 25 | * @brief 是否处在动画中 26 | */ 27 | @property (nonatomic, assign, readonly) BOOL isFading; 28 | /*! 29 | * @brief 垂直方块个数。默认为3 30 | */ 31 | @property (nonatomic, assign) NSInteger verticalCount; 32 | /*! 33 | * @brief 水平方块个数。默认为18 34 | */ 35 | @property (nonatomic, assign) NSInteger horizontalCount; 36 | /*! 37 | * @brief 方块动画之间的间隔0.2~1.2。默认0.7 38 | */ 39 | @property (nonatomic, assign) NSTimeInterval intervalDuration; 40 | /*! 41 | * @brief 每个方块隐藏的动画时间0.05~0.3,最多为动画时长的25%。默认为0.185 42 | */ 43 | @property (nonatomic, assign) NSTimeInterval fadeAnimationDuration; 44 | 45 | - (void)configurateWithVerticalCount: (NSInteger)verticalCount horizontalCount: (NSInteger)horizontalCount interval: (NSTimeInterval)interval duration: (NSTimeInterval)duration; 46 | 47 | - (void)reverseWithComplete: (void(^)(void))complete; 48 | - (void)animateFadeWithComplete: (void(^)(void))complete; 49 | - (void)reverseWithoutAnimate; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LXDMaskViewAnimation 4 | // 5 | // Created by 林欣达 on 16/5/10. 6 | // Copyright © 2016年 CNPay. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimation/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LXDMaskViewAnimation 4 | // 5 | // Created by 林欣达 on 16/5/10. 6 | // Copyright © 2016年 CNPay. 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 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimationTests/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 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimationTests/LXDMaskViewAnimationTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDMaskViewAnimationTests.m 3 | // LXDMaskViewAnimationTests 4 | // 5 | // Created by 林欣达 on 16/5/12. 6 | // Copyright © 2016年 CNPay. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDMaskViewAnimationTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDMaskViewAnimationTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimationUITests/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 | -------------------------------------------------------------------------------- /LXDMaskViewAnimation/LXDMaskViewAnimationUITests/LXDMaskViewAnimationUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDMaskViewAnimationUITests.m 3 | // LXDMaskViewAnimationUITests 4 | // 5 | // Created by 林欣达 on 16/5/12. 6 | // Copyright © 2016年 CNPay. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDMaskViewAnimationUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDMaskViewAnimationUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDReplicateDemo/LXDReplicateDemo.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDReplicateDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF4C8A1C1D017436001ADCDC 16 | 17 | primary 18 | 19 | 20 | EF4C8A301D017436001ADCDC 21 | 22 | primary 23 | 24 | 25 | EF4C8A3B1D017436001ADCDC 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/Assets.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 | } -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/GCD/LXDGCD.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDGCD.h 3 | // LXDPersonalBlog 4 | // 5 | // Created by 林欣达 on 16/5/4. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #ifndef LXDGCD_h 10 | #define LXDGCD_h 11 | 12 | #import "LXDTimer.h" 13 | #import "LXDGroup.h" 14 | #import "LXDQueue.h" 15 | #import "LXDSemaphore.h" 16 | 17 | #endif /* LXDGCD_h */ 18 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/GCD/LXDGroup.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDGroup.h 3 | // LXDPersonalBlog 4 | // 5 | // Created by 林欣达 on 16/5/3. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /*! 12 | * @brief 封装GCD任务组 13 | */ 14 | @interface LXDGroup : NSObject 15 | 16 | @property (nonatomic, readonly, strong) dispatch_group_t executeGroup; 17 | 18 | #pragma mark - 操作 19 | - (void)wait; 20 | - (void)enter; 21 | - (void)leave; 22 | - (BOOL)wait: (NSTimeInterval)delay; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/GCD/LXDGroup.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDGroup.m 3 | // LXDPersonalBlog 4 | // 5 | // Created by 林欣达 on 16/5/3. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDGroup.h" 10 | 11 | @interface LXDGroup () 12 | 13 | @property (nonatomic, strong) dispatch_group_t executeGroup; 14 | 15 | @end 16 | 17 | 18 | @implementation LXDGroup 19 | 20 | - (instancetype)init 21 | { 22 | if (self = [super init]) { 23 | self.executeGroup = dispatch_group_create(); 24 | } 25 | return self; 26 | } 27 | 28 | - (void)wait 29 | { 30 | dispatch_group_wait(self.executeGroup, DISPATCH_TIME_FOREVER); 31 | } 32 | 33 | - (void)enter 34 | { 35 | dispatch_group_enter(self.executeGroup); 36 | } 37 | 38 | - (void)leave 39 | { 40 | dispatch_group_leave(self.executeGroup); 41 | } 42 | 43 | - (BOOL)wait: (NSTimeInterval)delay 44 | { 45 | return dispatch_group_wait(self.executeGroup, delay * NSEC_PER_SEC) == 0; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/GCD/LXDSemaphore.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSemaphore.h 3 | // LXDPersonalBlog 4 | // 5 | // Created by 林欣达 on 16/5/3. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /*! 12 | * @brief 封装GCD信号量 13 | */ 14 | @interface LXDSemaphore : NSObject 15 | 16 | @property (nonatomic, readonly, strong) dispatch_semaphore_t executeSemaphore; 17 | 18 | #pragma mark - 构造器 19 | - (instancetype)initWithValue: (NSUInteger)value; 20 | 21 | #pragma mark - 操作 22 | - (void)wait; 23 | - (BOOL)waitWithTimeout: (NSTimeInterval)timeout; 24 | - (BOOL)signal; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/GCD/LXDSemaphore.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSemaphore.m 3 | // LXDPersonalBlog 4 | // 5 | // Created by 林欣达 on 16/5/3. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDSemaphore.h" 10 | 11 | @interface LXDSemaphore () 12 | 13 | @property (nonatomic, strong) dispatch_semaphore_t executeSemaphore; 14 | 15 | @end 16 | 17 | 18 | @implementation LXDSemaphore 19 | 20 | - (instancetype)init 21 | { 22 | return [self initWithValue: 1]; 23 | } 24 | 25 | - (instancetype)initWithValue: (NSUInteger)value 26 | { 27 | if (self = [super init]) { 28 | self.executeSemaphore = dispatch_semaphore_create(value); 29 | } 30 | return self; 31 | } 32 | 33 | 34 | #pragma mark - 操作 35 | - (void)wait 36 | { 37 | dispatch_semaphore_wait(self.executeSemaphore, DISPATCH_TIME_FOREVER); 38 | } 39 | 40 | - (BOOL)waitWithTimeout: (NSTimeInterval)timeout 41 | { 42 | return dispatch_semaphore_wait(self.executeSemaphore, dispatch_time(DISPATCH_TIME_NOW, timeout * NSEC_PER_SEC)) == 0; 43 | } 44 | 45 | - (BOOL)signal 46 | { 47 | return dispatch_semaphore_signal(self.executeSemaphore) != 0; 48 | } 49 | 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/GCD/LXDTimer.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDTimer.h 3 | // LXDPersonalBlog 4 | // 5 | // Created by 林欣达 on 16/5/4. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class LXDQueue; 12 | /*! 13 | * @brief 封装GCD定时器 14 | */ 15 | @interface LXDTimer : NSObject 16 | 17 | @property (nonatomic, readonly, strong) dispatch_source_t executeSource; 18 | 19 | #pragma mark - 构造器 20 | - (instancetype)initWithExecuteQueue: (LXDQueue *)queue; 21 | 22 | #pragma mark - 操作 23 | - (void)execute: (dispatch_block_t)block interval: (NSTimeInterval)interval; 24 | - (void)execute: (dispatch_block_t)block interval: (NSTimeInterval)interval delay: (NSTimeInterval)delay; 25 | - (void)start; 26 | - (void)destory; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemo/OC-Swift-Bridge-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // OC-Swift-Bridge-Header.h 3 | // LXDReplicateDemo 4 | // 5 | // Created by 林欣达 on 16/6/3. 6 | // Copyright © 2016年 CNPay. All rights reserved. 7 | // 8 | 9 | #ifndef OC_Swift_Bridge_Header_h 10 | #define OC_Swift_Bridge_Header_h 11 | 12 | #import "LXDGCD.h" 13 | 14 | #endif /* OC_Swift_Bridge_Header_h */ 15 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemoTests/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 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemoTests/LXDReplicateDemoTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDReplicateDemoTests.swift 3 | // LXDReplicateDemoTests 4 | // 5 | // Created by 林欣达 on 16/6/3. 6 | // Copyright © 2016年 CNPay. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import LXDReplicateDemo 11 | 12 | class LXDReplicateDemoTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemoUITests/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 | -------------------------------------------------------------------------------- /LXDReplicateDemo/LXDReplicateDemoUITests/LXDReplicateDemoUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDReplicateDemoUITests.swift 3 | // LXDReplicateDemoUITests 4 | // 5 | // Created by 林欣达 on 16/6/3. 6 | // Copyright © 2016年 CNPay. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class LXDReplicateDemoUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDSlideMenuObjectiveC.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EFE1C7A91C0AB72D00AB6D92 16 | 17 | primary 18 | 19 | 20 | EFE1C7C21C0AB72D00AB6D92 21 | 22 | primary 23 | 24 | 25 | EFE1C7CD1C0AB72D00AB6D92 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.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 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/login.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "login@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "login@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/login.imageset/login@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/login.imageset/login@2x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/login.imageset/login@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/login.imageset/login@3x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/password.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "password@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "password@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/password.imageset/password@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/password.imageset/password@2x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/password.imageset/password@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/password.imageset/password@3x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "remeber@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "remeber@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber.imageset/remeber@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber.imageset/remeber@2x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber.imageset/remeber@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber.imageset/remeber@3x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber_hl.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "remeber_hl@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "remeber_hl@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber_hl.imageset/remeber_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber_hl.imageset/remeber_hl@2x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber_hl.imageset/remeber_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/Assets.xcassets/remeber_hl.imageset/remeber_hl@3x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/LXDCommonViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDCommonViewController.h 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDCommonViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/LXDCommonViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDCommonViewController.m 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDCommonViewController.h" 10 | #import "LXDSlideManager.h" 11 | 12 | @interface LXDCommonViewController () 13 | 14 | @end 15 | 16 | @implementation LXDCommonViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | } 25 | 26 | - (IBAction)clickView:(id)sender { 27 | [[LXDSlideManager sharedManager] openOrClose]; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/LXDMainViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDMainViewController.h 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDMainViewController : UITabBarController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/LXDMainViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDMainViewController.m 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDMainViewController.h" 10 | #import "LXDSlideManager.h" 11 | 12 | @interface LXDMainViewController () 13 | 14 | @end 15 | 16 | @implementation LXDMainViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | 21 | UIViewController * slideController = [[UIStoryboard storyboardWithName: @"Main" bundle: nil] instantiateViewControllerWithIdentifier: @"menuController"]; 22 | LXDSlideManager * slideManager = [LXDSlideManager sharedManager]; 23 | [slideManager setupMainController: self]; 24 | [slideManager setupMenuController: slideController]; 25 | } 26 | 27 | - (void)didReceiveMemoryWarning { 28 | [super didReceiveMemoryWarning]; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/LXDSlideManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSlideManager.h 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef enum 12 | { 13 | LXDDemoTypeOnMainView, //在主视图上面添加 14 | LXDDemoTypeOnWindow, //在window上添加边栏视图 15 | } LXDDemoType; 16 | 17 | typedef enum 18 | { 19 | LXDSlideTypeBothMove, //两个视图都移动 20 | LXDSlideTypeMenuMove, //只移动边栏视图(加在window上时,可能会导致主视图覆盖导致边栏视图无法显示) 21 | } LXDSlideType; 22 | 23 | @interface LXDSlideManager : NSObject 24 | 25 | + (__nonnull instancetype)sharedManager; 26 | - (void)setupMainController: (UIViewController * __nonnull)mainController; 27 | - (void)setupMenuController: (UIViewController * __nonnull)menuController; 28 | - (void)openOrClose; 29 | 30 | @property (nonatomic, assign) LXDSlideType slideType; 31 | @property (nonatomic, assign) LXDDemoType demoType; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. 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 | } 20 | 21 | - (void)didReceiveMemoryWarning { 22 | [super didReceiveMemoryWarning]; 23 | } 24 | 25 | 26 | #pragma mark - text field 27 | - (BOOL)textFieldShouldReturn:(UITextField *)textField 28 | { 29 | [textField resignFirstResponder]; 30 | return YES; 31 | } 32 | 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveC/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LXDSlideMenuObjectiveC 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveCTests/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 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveCTests/LXDSlideMenuObjectiveCTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSlideMenuObjectiveCTests.m 3 | // LXDSlideMenuObjectiveCTests 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDSlideMenuObjectiveCTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDSlideMenuObjectiveCTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveCUITests/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 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuObjectiveC/LXDSlideMenuObjectiveCUITests/LXDSlideMenuObjectiveCUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSlideMenuObjectiveCUITests.m 3 | // LXDSlideMenuObjectiveCUITests 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDSlideMenuObjectiveCUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDSlideMenuObjectiveCUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDSlideMenuSwift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EFE1C72B1C0A906800AB6D92 16 | 17 | primary 18 | 19 | 20 | EFE1C73F1C0A906900AB6D92 21 | 22 | primary 23 | 24 | 25 | EFE1C74A1C0A906900AB6D92 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.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 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/login.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "login@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "login@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/login.imageset/login@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/login.imageset/login@2x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/login.imageset/login@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/login.imageset/login@3x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/password.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "password@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "password@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/password.imageset/password@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/password.imageset/password@2x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/password.imageset/password@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/password.imageset/password@3x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "remeber@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "remeber@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber.imageset/remeber@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber.imageset/remeber@2x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber.imageset/remeber@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber.imageset/remeber@3x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber_hl.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "remeber_hl@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "remeber_hl@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber_hl.imageset/remeber_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber_hl.imageset/remeber_hl@2x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber_hl.imageset/remeber_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/Assets.xcassets/remeber_hl.imageset/remeber_hl@3x.png -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/LXDCommonViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDCommonViewController.swift 3 | // LXDSlideMenuSwift 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LXDCommonViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | override func didReceiveMemoryWarning() { 20 | super.didReceiveMemoryWarning() 21 | // Dispose of any resources that can be recreated. 22 | } 23 | 24 | @IBAction func click(sender: AnyObject) { 25 | LXDSlideManager.sharedManager().openOrClose() 26 | } 27 | 28 | /* 29 | // MARK: - Navigation 30 | 31 | // In a storyboard-based application, you will often want to do a little preparation before navigation 32 | override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 33 | // Get the new view controller using segue.destinationViewController. 34 | // Pass the selected object to the new view controller. 35 | } 36 | */ 37 | 38 | } 39 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/LXDMainViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDMainViewController.swift 3 | // LXDSlideMenuSwift 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LXDMainViewController: UITabBarController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | let slideManager = LXDSlideManager.sharedManager() 17 | slideManager.setMainController(self) 18 | slideManager.setMenuController(UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("menuController")) 19 | } 20 | 21 | override func didReceiveMemoryWarning() { 22 | super.didReceiveMemoryWarning() 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwift/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // LXDSlideMenuSwift 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController, UITextFieldDelegate { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | } 16 | 17 | override func didReceiveMemoryWarning() { 18 | super.didReceiveMemoryWarning() 19 | } 20 | 21 | func textFieldShouldReturn(textField: UITextField) -> Bool { 22 | textField.resignFirstResponder() 23 | return true 24 | } 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwiftTests/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 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwiftTests/LXDSlideMenuSwiftTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSlideMenuSwiftTests.swift 3 | // LXDSlideMenuSwiftTests 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import LXDSlideMenuSwift 11 | 12 | class LXDSlideMenuSwiftTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwiftUITests/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 | -------------------------------------------------------------------------------- /LXDSlideMenu-master/LXDSlideMenuSwift/LXDSlideMenuSwiftUITests/LXDSlideMenuSwiftUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSlideMenuSwiftUITests.swift 3 | // LXDSlideMenuSwiftUITests 4 | // 5 | // Created by linxinda on 15/11/29. 6 | // Copyright © 2015年 sindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class LXDSlideMenuSwiftUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSwiftAnimation/LXDSwiftAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDSwiftAnimation.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF09C7281DAB8BCA00A5513B 16 | 17 | primary 18 | 19 | 20 | EF09C73C1DAB8BCA00A5513B 21 | 22 | primary 23 | 24 | 25 | EF09C7471DAB8BCA00A5513B 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | } 43 | ], 44 | "info" : { 45 | "version" : 1, 46 | "author" : "xcode" 47 | } 48 | } -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/alphaBG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "alphaBG@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/alphaBG.imageset/alphaBG@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/alphaBG.imageset/alphaBG@2x.png -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/navigtionBg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "navigtionBg.png", 6 | "scale" : "1x" 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 | } -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/navigtionBg.imageset/navigtionBg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/navigtionBg.imageset/navigtionBg.png -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "placeholder@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/placeholder.imageset/placeholder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDSwiftAnimation/LXDSwiftAnimation/Assets.xcassets/placeholder.imageset/placeholder@2x.png -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimation/TableViewHeaderView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TableViewHeaderView.swift 3 | // LXDSwiftAnimation 4 | // 5 | // Created by linxinda on 16/10/10. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TableViewHeaderView: UIView { 12 | 13 | private lazy var colorLayer: CAShapeLayer = { 14 | let layer = CAShapeLayer() 15 | layer.isOpaque = true 16 | layer.fillColor = UIColor(red: 84/255.0, green: 180/255.0, blue: 239/255.0, alpha: 1).cgColor 17 | return layer 18 | }() 19 | 20 | override init(frame: CGRect) { 21 | super.init(frame: frame) 22 | backgroundColor = .clear 23 | layer.addSublayer(colorLayer) 24 | } 25 | 26 | required init?(coder aDecoder: NSCoder) { 27 | super.init(coder: aDecoder) 28 | } 29 | 30 | func updateLayer(controlY: CGFloat, base: CGFloat) { 31 | let path = CGMutablePath() 32 | path.move(to: .zero) 33 | path.addLine(to: CGPoint(x: frame.width, y: 0)) 34 | path.addLine(to: CGPoint(x: frame.width, y: base)) 35 | path.addQuadCurve(to: CGPoint(x: 0, y: base), control: CGPoint(x: frame.width/2, y: controlY)) 36 | path.closeSubpath() 37 | colorLayer.path = path 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimationTests/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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimationTests/LXDSwiftAnimationTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSwiftAnimationTests.swift 3 | // LXDSwiftAnimationTests 4 | // 5 | // Created by linxinda on 16/10/10. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import LXDSwiftAnimation 11 | 12 | class LXDSwiftAnimationTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimationUITests/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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LXDSwiftAnimation/LXDSwiftAnimationUITests/LXDSwiftAnimationUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LXDSwiftAnimationUITests.swift 3 | // LXDSwiftAnimationUITests 4 | // 5 | // Created by linxinda on 16/10/10. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class LXDSwiftAnimationUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDTextFieldAdjust/LXDTextFieldAdjust.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDTextFieldAdjust.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EFA5CDF21D9219B3009F9FA5 16 | 17 | primary 18 | 19 | 20 | EFA5CE0B1D9219B3009F9FA5 21 | 22 | primary 23 | 24 | 25 | EFA5CE161D9219B3009F9FA5 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/21. 6 | // Copyright © 2016年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/Assets.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 | } -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/LXDTextFieldExtension/LXDEmojiTextRestrict.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDEmojiTextRestrict.h 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/23. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDTextRestrict.h" 10 | 11 | @interface LXDEmojiTextRestrict : LXDTextRestrict 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/LXDTextFieldExtension/LXDEmojiTextRestrict.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDEmojiTextRestrict.m 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/23. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDEmojiTextRestrict.h" 10 | 11 | @implementation LXDEmojiTextRestrict 12 | 13 | - (void)textDidChanged: (UITextField *)textField 14 | { 15 | NSMutableString * modifyString = textField.text.mutableCopy; 16 | for (NSInteger idx = 0; idx < modifyString.length;) { 17 | NSString * subString = [modifyString substringWithRange: NSMakeRange(idx, 1)]; 18 | NSString * emojiExp = @"^[\\ud83c\\udc00-\\ud83c\\udfff]|[\\ud83d\\udc00-\\ud83d\\udfff]|[\\u2600-\\u27ff]$"; 19 | NSPredicate * predicate = [NSPredicate predicateWithFormat: @"SELF MATCHES %@", emojiExp]; 20 | if ([predicate evaluateWithObject: subString]) { 21 | idx++; 22 | } else { 23 | [modifyString deleteCharactersInRange: NSMakeRange(idx, 1)]; 24 | } 25 | } 26 | textField.text = modifyString; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/LXDTextFieldExtension/LXDTextRestrict.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDTextRestrict.h 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/23. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef BOOL(^LXDStringFilter)(NSString * aString); 12 | 13 | typedef NS_ENUM(NSInteger, LXDRestrictType) 14 | { 15 | LXDRestrictTypeOnlyNumber = 1, ///< 只允许输入数字 16 | LXDRestrictTypeOnlyDecimal = 2, ///< 只允许输入实数,包括. 17 | LXDRestrictTypeOnlyCharacter = 3, ///< 只允许非中文输入 18 | }; 19 | 20 | /*! 21 | * 文本限制 22 | */ 23 | @interface LXDTextRestrict : NSObject 24 | 25 | @property (nonatomic, assign) NSUInteger maxLength; 26 | @property (nonatomic, readonly) LXDRestrictType restrictType; 27 | 28 | + (instancetype)textRestrictWithRestrictType: (LXDRestrictType)restrictType; 29 | - (void)textDidChanged: (UITextField *)textField; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/LXDTextFieldExtension/LXDTextRestrict/LXDTextRestrict.h: -------------------------------------------------------------------------------- 1 | // 2 | // LXDTextRestrict.h 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/23. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef BOOL(^LXDStringFilter)(NSString * aString); 12 | 13 | typedef NS_ENUM(NSInteger, LXDRestrictType) 14 | { 15 | LXDRestrictTypeOnlyNumber = 1, ///< 只允许输入数字 16 | LXDRestrictTypeOnlyDecimal = 2, ///< 只允许输入实数,包括. 17 | LXDRestrictTypeOnlyCharacter = 3, ///< 只允许非中文输入 18 | }; 19 | 20 | /*! 21 | * 文本限制 22 | */ 23 | @interface LXDTextRestrict : NSObject 24 | 25 | @property (nonatomic, assign) NSUInteger maxLength; 26 | @property (nonatomic, readonly) LXDRestrictType restrictType; 27 | 28 | + (instancetype)textRestrictWithRestrictType: (LXDRestrictType)restrictType; 29 | - (void)textDidChanged: (UITextField *)textField; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/LXDTextFieldExtension/LXDTextRestrict/UITextField+LXDRestrict.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+LXDRestrict.h 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/23. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDTextRestrict.h" 10 | 11 | @interface UITextField (LXDRestrict) 12 | 13 | /// 设置后生效 14 | @property (nonatomic, assign) LXDRestrictType restrictType; 15 | 16 | /// 文本最长长度 17 | @property (nonatomic, assign) NSUInteger maxTextLength; 18 | 19 | /// 设置自定义的文本限制 20 | @property (nonatomic, strong) LXDTextRestrict * textRestrict; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/LXDTextFieldExtension/UITextField+LXDAdjust.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+LXDAdjust.h 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/23. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UITextField (LXDAdjust) 12 | 13 | /// 自动适应 14 | - (void)setAutoAdjust: (BOOL)autoAdjust; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/LXDTextFieldExtension/UITextField+LXDRestrict.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+LXDRestrict.h 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/23. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import "LXDTextRestrict.h" 10 | 11 | @interface UITextField (LXDRestrict) 12 | 13 | /// 设置后生效 14 | @property (nonatomic, assign) LXDRestrictType restrictType; 15 | 16 | /// 文本最长长度 17 | @property (nonatomic, assign) NSUInteger maxTextLength; 18 | 19 | /// 设置自定义的文本限制 20 | @property (nonatomic, strong) LXDTextRestrict * textRestrict; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/21. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjust/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LXDTextFieldAdjust 4 | // 5 | // Created by linxinda on 16/9/21. 6 | // Copyright © 2016年 sindriLin. 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 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjustTests/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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjustTests/LXDTextFieldAdjustTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDTextFieldAdjustTests.m 3 | // LXDTextFieldAdjustTests 4 | // 5 | // Created by linxinda on 16/9/21. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDTextFieldAdjustTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDTextFieldAdjustTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjustUITests/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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LXDTextFieldAdjust/LXDTextFieldAdjustUITests/LXDTextFieldAdjustUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDTextFieldAdjustUITests.m 3 | // LXDTextFieldAdjustUITests 4 | // 5 | // Created by linxinda on 16/9/21. 6 | // Copyright © 2016年 sindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDTextFieldAdjustUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDTextFieldAdjustUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDUIViewAnimation-master/LXDUIViewAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LXDUIViewAnimation.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EFB32FD21C50B9AE007F10F3 16 | 17 | primary 18 | 19 | 20 | EFB32FEB1C50B9AE007F10F3 21 | 22 | primary 23 | 24 | 25 | EFB32FF61C50B9AE007F10F3 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // LXDUIViewAnimation 4 | // 5 | // Created by 林欣达 on 16/1/21. 6 | // Copyright © 2016年 SindriLin. 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 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/Assets.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 | } -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/Assets.xcassets/bg-sunny.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "bg-sunny@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "bg-sunny@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/Assets.xcassets/bg-sunny.imageset/bg-sunny@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDUIViewAnimation-master/LXDUIViewAnimation/Assets.xcassets/bg-sunny.imageset/bg-sunny@2x.png -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/Assets.xcassets/bg-sunny.imageset/bg-sunny@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/LXDUIViewAnimation-master/LXDUIViewAnimation/Assets.xcassets/bg-sunny.imageset/bg-sunny@3x.png -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // LXDUIViewAnimation 4 | // 5 | // Created by 林欣达 on 16/1/21. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimation/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LXDUIViewAnimation 4 | // 5 | // Created by 林欣达 on 16/1/21. 6 | // Copyright © 2016年 SindriLin. 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 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimationTests/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 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimationTests/LXDUIViewAnimationTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDUIViewAnimationTests.m 3 | // LXDUIViewAnimationTests 4 | // 5 | // Created by 林欣达 on 16/1/21. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDUIViewAnimationTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDUIViewAnimationTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimationUITests/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 | -------------------------------------------------------------------------------- /LXDUIViewAnimation-master/LXDUIViewAnimationUITests/LXDUIViewAnimationUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LXDUIViewAnimationUITests.m 3 | // LXDUIViewAnimationUITests 4 | // 5 | // Created by 林欣达 on 16/1/21. 6 | // Copyright © 2016年 SindriLin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LXDUIViewAnimationUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LXDUIViewAnimationUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sindrilin/Animations/c204d26edfc65f2acbc6e756d0f3e40df5893ceb/TimerAnimation/TimerAnimation.xcodeproj/project.xcworkspace/xcuserdata/linxinda.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimation.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimation.xcodeproj/xcuserdata/linxinda.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | TimerAnimation.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF1929E31DF545AD004DB152 16 | 17 | primary 18 | 19 | 20 | EF1929F71DF545AD004DB152 21 | 22 | primary 23 | 24 | 25 | EF192A021DF545AD004DB152 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimation/Assets.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 | } -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimation/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimationTests/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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimationTests/TimerAnimationTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TimerAnimationTests.swift 3 | // TimerAnimationTests 4 | // 5 | // Created by linxinda on 2016/12/5. 6 | // Copyright © 2016年 Jolimark. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import TimerAnimation 11 | 12 | class TimerAnimationTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimationUITests/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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /TimerAnimation/TimerAnimationUITests/TimerAnimationUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TimerAnimationUITests.swift 3 | // TimerAnimationUITests 4 | // 5 | // Created by linxinda on 2016/12/5. 6 | // Copyright © 2016年 Jolimark. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class TimerAnimationUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | --------------------------------------------------------------------------------