├── 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 |
--------------------------------------------------------------------------------