├── 1.gif ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── Podfile ├── Podfile.lock ├── Pods ├── Headers │ ├── Private │ │ ├── JazzHands │ │ │ ├── IFTTTAlphaAnimation.h │ │ │ ├── IFTTTAnimatable.h │ │ │ ├── IFTTTAnimatedPagingScrollViewController.h │ │ │ ├── IFTTTAnimatedScrollViewController.h │ │ │ ├── IFTTTAnimation.h │ │ │ ├── IFTTTAnimator.h │ │ │ ├── IFTTTBackgroundColorAnimation.h │ │ │ ├── IFTTTConstraintConstantAnimation.h │ │ │ ├── IFTTTConstraintMultiplierAnimation.h │ │ │ ├── IFTTTCornerRadiusAnimation.h │ │ │ ├── IFTTTEasingFunction.h │ │ │ ├── IFTTTFilmstrip.h │ │ │ ├── IFTTTFrameAnimation.h │ │ │ ├── IFTTTHideAnimation.h │ │ │ ├── IFTTTInterpolatable.h │ │ │ ├── IFTTTJazzHands.h │ │ │ ├── IFTTTLayerFillColorAnimation.h │ │ │ ├── IFTTTLayerStrokeEndAnimation.h │ │ │ ├── IFTTTLayerStrokeStartAnimation.h │ │ │ ├── IFTTTMaskAnimation.h │ │ │ ├── IFTTTPathPositionAnimation.h │ │ │ ├── IFTTTRotationAnimation.h │ │ │ ├── IFTTTScaleAnimation.h │ │ │ ├── IFTTTScrollViewPageConstraintAnimation.h │ │ │ ├── IFTTTShapeLayerAnimation.h │ │ │ ├── IFTTTTextColorAnimation.h │ │ │ ├── IFTTTTransform3DAnimation.h │ │ │ ├── IFTTTTranslationAnimation.h │ │ │ ├── IFTTTViewAnimation.h │ │ │ └── UIView+IFTTTJazzHands.h │ │ ├── MJRefresh │ │ │ ├── MJRefresh.h │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshConst.h │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshGifHeader.h │ │ │ ├── MJRefreshHeader.h │ │ │ ├── MJRefreshNormalHeader.h │ │ │ ├── MJRefreshStateHeader.h │ │ │ ├── NSBundle+MJRefresh.h │ │ │ ├── UIScrollView+MJExtension.h │ │ │ ├── UIScrollView+MJRefresh.h │ │ │ └── UIView+MJExtension.h │ │ ├── Masonry │ │ │ ├── MASCompositeConstraint.h │ │ │ ├── MASConstraint+Private.h │ │ │ ├── MASConstraint.h │ │ │ ├── MASConstraintMaker.h │ │ │ ├── MASLayoutConstraint.h │ │ │ ├── MASUtilities.h │ │ │ ├── MASViewAttribute.h │ │ │ ├── MASViewConstraint.h │ │ │ ├── Masonry.h │ │ │ ├── NSArray+MASAdditions.h │ │ │ ├── NSArray+MASShorthandAdditions.h │ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ │ ├── View+MASAdditions.h │ │ │ ├── View+MASShorthandAdditions.h │ │ │ └── ViewController+MASAdditions.h │ │ ├── Shimmer │ │ │ ├── FBShimmering.h │ │ │ ├── FBShimmeringLayer.h │ │ │ └── FBShimmeringView.h │ │ └── pop │ │ │ ├── FloatConversion.h │ │ │ ├── POP.h │ │ │ ├── POPAction.h │ │ │ ├── POPAnimatableProperty.h │ │ │ ├── POPAnimation.h │ │ │ ├── POPAnimationEvent.h │ │ │ ├── POPAnimationEventInternal.h │ │ │ ├── POPAnimationExtras.h │ │ │ ├── POPAnimationInternal.h │ │ │ ├── POPAnimationPrivate.h │ │ │ ├── POPAnimationRuntime.h │ │ │ ├── POPAnimationTracer.h │ │ │ ├── POPAnimationTracerInternal.h │ │ │ ├── POPAnimator.h │ │ │ ├── POPAnimatorPrivate.h │ │ │ ├── POPBasicAnimation.h │ │ │ ├── POPBasicAnimationInternal.h │ │ │ ├── POPCGUtils.h │ │ │ ├── POPCustomAnimation.h │ │ │ ├── POPDecayAnimation.h │ │ │ ├── POPDecayAnimationInternal.h │ │ │ ├── POPDefines.h │ │ │ ├── POPGeometry.h │ │ │ ├── POPLayerExtras.h │ │ │ ├── POPMath.h │ │ │ ├── POPPropertyAnimation.h │ │ │ ├── POPPropertyAnimationInternal.h │ │ │ ├── POPSpringAnimation.h │ │ │ ├── POPSpringAnimationInternal.h │ │ │ ├── POPSpringSolver.h │ │ │ ├── POPVector.h │ │ │ ├── TransformationMatrix.h │ │ │ └── UnitBezier.h │ └── Public │ │ ├── JazzHands │ │ ├── IFTTTAlphaAnimation.h │ │ ├── IFTTTAnimatable.h │ │ ├── IFTTTAnimatedPagingScrollViewController.h │ │ ├── IFTTTAnimatedScrollViewController.h │ │ ├── IFTTTAnimation.h │ │ ├── IFTTTAnimator.h │ │ ├── IFTTTBackgroundColorAnimation.h │ │ ├── IFTTTConstraintConstantAnimation.h │ │ ├── IFTTTConstraintMultiplierAnimation.h │ │ ├── IFTTTCornerRadiusAnimation.h │ │ ├── IFTTTEasingFunction.h │ │ ├── IFTTTFilmstrip.h │ │ ├── IFTTTFrameAnimation.h │ │ ├── IFTTTHideAnimation.h │ │ ├── IFTTTInterpolatable.h │ │ ├── IFTTTJazzHands.h │ │ ├── IFTTTLayerFillColorAnimation.h │ │ ├── IFTTTLayerStrokeEndAnimation.h │ │ ├── IFTTTLayerStrokeStartAnimation.h │ │ ├── IFTTTMaskAnimation.h │ │ ├── IFTTTPathPositionAnimation.h │ │ ├── IFTTTRotationAnimation.h │ │ ├── IFTTTScaleAnimation.h │ │ ├── IFTTTScrollViewPageConstraintAnimation.h │ │ ├── IFTTTShapeLayerAnimation.h │ │ ├── IFTTTTextColorAnimation.h │ │ ├── IFTTTTransform3DAnimation.h │ │ ├── IFTTTTranslationAnimation.h │ │ ├── IFTTTViewAnimation.h │ │ └── UIView+IFTTTJazzHands.h │ │ ├── MJRefresh │ │ ├── MJRefresh.h │ │ ├── MJRefreshAutoFooter.h │ │ ├── MJRefreshAutoGifFooter.h │ │ ├── MJRefreshAutoNormalFooter.h │ │ ├── MJRefreshAutoStateFooter.h │ │ ├── MJRefreshBackFooter.h │ │ ├── MJRefreshBackGifFooter.h │ │ ├── MJRefreshBackNormalFooter.h │ │ ├── MJRefreshBackStateFooter.h │ │ ├── MJRefreshComponent.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshFooter.h │ │ ├── MJRefreshGifHeader.h │ │ ├── MJRefreshHeader.h │ │ ├── MJRefreshNormalHeader.h │ │ ├── MJRefreshStateHeader.h │ │ ├── NSBundle+MJRefresh.h │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJRefresh.h │ │ └── UIView+MJExtension.h │ │ ├── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraintMaker.h │ │ ├── MASLayoutConstraint.h │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewConstraint.h │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── View+MASAdditions.h │ │ ├── View+MASShorthandAdditions.h │ │ └── ViewController+MASAdditions.h │ │ ├── Shimmer │ │ ├── FBShimmering.h │ │ ├── FBShimmeringLayer.h │ │ └── FBShimmeringView.h │ │ └── pop │ │ ├── POP.h │ │ ├── POPAnimatableProperty.h │ │ ├── POPAnimation.h │ │ ├── POPAnimationEvent.h │ │ ├── POPAnimationExtras.h │ │ ├── POPAnimationTracer.h │ │ ├── POPAnimator.h │ │ ├── POPBasicAnimation.h │ │ ├── POPCustomAnimation.h │ │ ├── POPDecayAnimation.h │ │ ├── POPDefines.h │ │ ├── POPGeometry.h │ │ ├── POPLayerExtras.h │ │ ├── POPPropertyAnimation.h │ │ └── POPSpringAnimation.h ├── JazzHands │ ├── JazzHands │ │ ├── IFTTTAlphaAnimation.h │ │ ├── IFTTTAlphaAnimation.m │ │ ├── IFTTTAnimatable.h │ │ ├── IFTTTAnimatedPagingScrollViewController.h │ │ ├── IFTTTAnimatedPagingScrollViewController.m │ │ ├── IFTTTAnimatedScrollViewController.h │ │ ├── IFTTTAnimatedScrollViewController.m │ │ ├── IFTTTAnimation.h │ │ ├── IFTTTAnimation.m │ │ ├── IFTTTAnimator.h │ │ ├── IFTTTAnimator.m │ │ ├── IFTTTBackgroundColorAnimation.h │ │ ├── IFTTTBackgroundColorAnimation.m │ │ ├── IFTTTConstraintConstantAnimation.h │ │ ├── IFTTTConstraintConstantAnimation.m │ │ ├── IFTTTConstraintMultiplierAnimation.h │ │ ├── IFTTTConstraintMultiplierAnimation.m │ │ ├── IFTTTCornerRadiusAnimation.h │ │ ├── IFTTTCornerRadiusAnimation.m │ │ ├── IFTTTEasingFunction.h │ │ ├── IFTTTEasingFunction.m │ │ ├── IFTTTFilmstrip.h │ │ ├── IFTTTFilmstrip.m │ │ ├── IFTTTFrameAnimation.h │ │ ├── IFTTTFrameAnimation.m │ │ ├── IFTTTHideAnimation.h │ │ ├── IFTTTHideAnimation.m │ │ ├── IFTTTInterpolatable.h │ │ ├── IFTTTInterpolatable.m │ │ ├── IFTTTJazzHands.h │ │ ├── IFTTTLayerFillColorAnimation.h │ │ ├── IFTTTLayerFillColorAnimation.m │ │ ├── IFTTTLayerStrokeEndAnimation.h │ │ ├── IFTTTLayerStrokeEndAnimation.m │ │ ├── IFTTTLayerStrokeStartAnimation.h │ │ ├── IFTTTLayerStrokeStartAnimation.m │ │ ├── IFTTTMaskAnimation.h │ │ ├── IFTTTMaskAnimation.m │ │ ├── IFTTTPathPositionAnimation.h │ │ ├── IFTTTPathPositionAnimation.m │ │ ├── IFTTTRotationAnimation.h │ │ ├── IFTTTRotationAnimation.m │ │ ├── IFTTTScaleAnimation.h │ │ ├── IFTTTScaleAnimation.m │ │ ├── IFTTTScrollViewPageConstraintAnimation.h │ │ ├── IFTTTScrollViewPageConstraintAnimation.m │ │ ├── IFTTTShapeLayerAnimation.h │ │ ├── IFTTTShapeLayerAnimation.m │ │ ├── IFTTTTextColorAnimation.h │ │ ├── IFTTTTextColorAnimation.m │ │ ├── IFTTTTransform3DAnimation.h │ │ ├── IFTTTTransform3DAnimation.m │ │ ├── IFTTTTranslationAnimation.h │ │ ├── IFTTTTranslationAnimation.m │ │ ├── IFTTTViewAnimation.h │ │ ├── IFTTTViewAnimation.m │ │ ├── UIView+IFTTTJazzHands.h │ │ └── UIView+IFTTTJazzHands.m │ ├── LICENSE │ └── README.md ├── MJRefresh │ ├── LICENSE │ ├── MJRefresh │ │ ├── Base │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoFooter.m │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackFooter.m │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshComponent.m │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshFooter.m │ │ │ ├── MJRefreshHeader.h │ │ │ └── MJRefreshHeader.m │ │ ├── Custom │ │ │ ├── Footer │ │ │ │ ├── Auto │ │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ │ └── Back │ │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ │ └── MJRefreshBackStateFooter.m │ │ │ └── Header │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ ├── MJRefreshGifHeader.m │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ ├── MJRefreshNormalHeader.m │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ └── MJRefreshStateHeader.m │ │ ├── MJRefresh.bundle │ │ │ ├── arrow@2x.png │ │ │ ├── en.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── zh-Hans.lproj │ │ │ │ └── Localizable.strings │ │ │ └── zh-Hant.lproj │ │ │ │ └── Localizable.strings │ │ ├── MJRefresh.h │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshConst.m │ │ ├── NSBundle+MJRefresh.h │ │ ├── NSBundle+MJRefresh.m │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJExtension.m │ │ ├── UIScrollView+MJRefresh.h │ │ ├── UIScrollView+MJRefresh.m │ │ ├── UIView+MJExtension.h │ │ └── UIView+MJExtension.m │ └── README.md ├── Manifest.lock ├── Masonry │ ├── LICENSE │ ├── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASCompositeConstraint.m │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraint.m │ │ ├── MASConstraintMaker.h │ │ ├── MASConstraintMaker.m │ │ ├── MASLayoutConstraint.h │ │ ├── MASLayoutConstraint.m │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewAttribute.m │ │ ├── MASViewConstraint.h │ │ ├── MASViewConstraint.m │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASAdditions.m │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.m │ │ ├── View+MASAdditions.h │ │ ├── View+MASAdditions.m │ │ ├── View+MASShorthandAdditions.h │ │ ├── ViewController+MASAdditions.h │ │ └── ViewController+MASAdditions.m │ └── README.md ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── wujunyang.xcuserdatad │ │ └── xcschemes │ │ ├── MJRefresh.xcscheme │ │ ├── Masonry.xcscheme │ │ ├── Pods-popTest.xcscheme │ │ ├── pop.xcscheme │ │ └── xcschememanagement.plist ├── Shimmer │ ├── FBShimmering │ │ ├── FBShimmering.h │ │ ├── FBShimmeringLayer.h │ │ ├── FBShimmeringLayer.m │ │ ├── FBShimmeringView.h │ │ └── FBShimmeringView.m │ ├── LICENSE │ └── README.md ├── Target Support Files │ ├── JazzHands │ │ ├── JazzHands-dummy.m │ │ ├── JazzHands-prefix.pch │ │ └── JazzHands.xcconfig │ ├── MJRefresh │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ └── MJRefresh.xcconfig │ ├── Masonry │ │ ├── Masonry-dummy.m │ │ ├── Masonry-prefix.pch │ │ └── Masonry.xcconfig │ ├── Pods-popTest │ │ ├── Pods-popTest-acknowledgements.markdown │ │ ├── Pods-popTest-acknowledgements.plist │ │ ├── Pods-popTest-dummy.m │ │ ├── Pods-popTest-frameworks.sh │ │ ├── Pods-popTest-resources.sh │ │ ├── Pods-popTest.debug.xcconfig │ │ └── Pods-popTest.release.xcconfig │ ├── Shimmer │ │ ├── Shimmer-dummy.m │ │ ├── Shimmer-prefix.pch │ │ └── Shimmer.xcconfig │ └── pop │ │ ├── pop-dummy.m │ │ ├── pop-prefix.pch │ │ └── pop.xcconfig └── pop │ ├── LICENSE │ ├── README.md │ └── pop │ ├── POP.h │ ├── POPAction.h │ ├── POPAnimatableProperty.h │ ├── POPAnimatableProperty.mm │ ├── POPAnimation.h │ ├── POPAnimation.mm │ ├── POPAnimationEvent.h │ ├── POPAnimationEvent.mm │ ├── POPAnimationEventInternal.h │ ├── POPAnimationExtras.h │ ├── POPAnimationExtras.mm │ ├── POPAnimationInternal.h │ ├── POPAnimationPrivate.h │ ├── POPAnimationRuntime.h │ ├── POPAnimationRuntime.mm │ ├── POPAnimationTracer.h │ ├── POPAnimationTracer.mm │ ├── POPAnimationTracerInternal.h │ ├── POPAnimator.h │ ├── POPAnimator.mm │ ├── POPAnimatorPrivate.h │ ├── POPBasicAnimation.h │ ├── POPBasicAnimation.mm │ ├── POPBasicAnimationInternal.h │ ├── POPCGUtils.h │ ├── POPCGUtils.mm │ ├── POPCustomAnimation.h │ ├── POPCustomAnimation.mm │ ├── POPDecayAnimation.h │ ├── POPDecayAnimation.mm │ ├── POPDecayAnimationInternal.h │ ├── POPDefines.h │ ├── POPGeometry.h │ ├── POPGeometry.mm │ ├── POPLayerExtras.h │ ├── POPLayerExtras.mm │ ├── POPMath.h │ ├── POPMath.mm │ ├── POPPropertyAnimation.h │ ├── POPPropertyAnimation.mm │ ├── POPPropertyAnimationInternal.h │ ├── POPSpringAnimation.h │ ├── POPSpringAnimation.mm │ ├── POPSpringAnimationInternal.h │ ├── POPSpringSolver.h │ ├── POPVector.h │ ├── POPVector.mm │ └── WebCore │ ├── FloatConversion.h │ ├── TransformationMatrix.cpp │ ├── TransformationMatrix.h │ └── UnitBezier.h ├── README.md ├── popTest.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── xcuserdata │ └── wujunyang.xcuserdatad │ └── xcschemes │ ├── popTest.xcscheme │ └── xcschememanagement.plist ├── popTest.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── popTest ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ ├── 001.imageset │ │ ├── 001.png │ │ └── Contents.json │ ├── 002.imageset │ │ ├── 002.png │ │ └── Contents.json │ ├── 01.imageset │ │ ├── 01.png │ │ └── Contents.json │ ├── 02.imageset │ │ ├── 02.png │ │ └── Contents.json │ ├── 1.imageset │ │ ├── 1.png │ │ └── Contents.json │ ├── 2.imageset │ │ ├── 2.png │ │ └── Contents.json │ ├── 3.imageset │ │ ├── 3.png │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-60@2x.png │ │ ├── Icon-76.png │ │ ├── Icon-76@2x.png │ │ ├── Icon-Small-40.png │ │ ├── Icon-Small-40@2x-1.png │ │ ├── Icon-Small-40@2x.png │ │ ├── Icon-Small.png │ │ ├── Icon-Small@2x-1.png │ │ └── Icon-Small@2x.png │ ├── Close_icn.imageset │ │ ├── Close_icn.png │ │ ├── Close_icn@2x.png │ │ ├── Close_icn@3x.png │ │ └── Contents.json │ ├── Contents.json │ ├── Menu_icn.imageset │ │ ├── Contents.json │ │ ├── Menu_icn.png │ │ ├── Menu_icn@2x.png │ │ └── Menu_icn@3x.png │ ├── TimerButton.imageset │ │ ├── Contents.json │ │ └── TimerButton.png │ ├── TimerPopOut.imageset │ │ ├── Contents.json │ │ └── TimerPopOut@2x.png │ ├── blue.imageset │ │ ├── Contents.json │ │ ├── blue@2x.png │ │ └── blue@3x.png │ ├── bull_head_gray.imageset │ │ ├── Contents.json │ │ └── pull_refresh_arrow@2x.png │ ├── bull_head_green.imageset │ │ ├── Contents.json │ │ └── pull_refresh_arrow_highlight@2x.png │ ├── du.imageset │ │ ├── Contents.json │ │ ├── du@2x.png │ │ └── du@3x.png │ ├── gray.imageset │ │ ├── Contents.json │ │ ├── gray@2x.png │ │ └── gray@3x.png │ ├── loading_indicator.imageset │ │ ├── Contents.json │ │ └── loading_indicator@2x.png │ ├── loading_logo.imageset │ │ ├── Contents.json │ │ └── loading_logo@2x.png │ ├── priase_dafault.imageset │ │ ├── Contents.json │ │ ├── 赞icon@2x.png │ │ └── 赞icon@3x.png │ └── priase_select.imageset │ │ ├── Contents.json │ │ ├── 赞icon-点击态@2x.png │ │ └── 赞icon-点击态@3x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── BezierPathViewController.h ├── BezierPathViewController.m ├── CAEmitterLayerViewController.h ├── CAEmitterLayerViewController.m ├── CoreAnimationViewController.h ├── CoreAnimationViewController.m ├── DecayViewController.h ├── DecayViewController.m ├── DemoViewController.h ├── DemoViewController.m ├── Info.plist ├── MPImageViewViewController.h ├── MPImageViewViewController.m ├── MPPopViewController.h ├── MPPopViewController.m ├── MPProgressViewController.h ├── MPProgressViewController.m ├── MPPushViewController.h ├── MPPushViewController.m ├── MPScaleViewController.h ├── MPScaleViewController.m ├── MPTelescopicViewController.h ├── MPTelescopicViewController.m ├── MPUIBezierPathViewController.h ├── MPUIBezierPathViewController.m ├── OtherViewController.h ├── OtherViewController.m ├── POPBasicAnimationViewController.h ├── POPBasicAnimationViewController.m ├── POPCALayerMaskViewController.h ├── POPCALayerMaskViewController.m ├── POPDecayAnimationViewController.h ├── POPDecayAnimationViewController.m ├── POPProgressBarViewController.h ├── POPProgressBarViewController.m ├── POPProgressViewController.h ├── POPProgressViewController.m ├── POPSpringAnimationViewController.h ├── POPSpringAnimationViewController.m ├── POPTableViewController.h ├── POPTableViewController.m ├── ReplicatorLayerViewController.h ├── ReplicatorLayerViewController.m ├── ViewController.h ├── ViewController.m ├── WaterWaveViewController.h ├── WaterWaveViewController.m ├── main.m └── popDemo │ ├── MPDownloadViewController.h │ ├── MPDownloadViewController.m │ ├── VC │ ├── PopBackTopViewController.h │ └── PopBackTopViewController.m │ └── View │ ├── BLEProgressView │ ├── BLEProgressBar.h │ ├── BLEProgressBar.m │ ├── BLEProgressBaseView.h │ ├── BLEProgressBaseView.m │ ├── BLEProgressIndicator.h │ ├── BLEProgressIndicator.m │ ├── BLEProgressView.h │ └── BLEProgressView.m │ ├── HYYBubbleButton.h │ ├── HYYBubbleButton.m │ ├── LoadingView │ ├── YDWaveLoadingView.h │ └── YDWaveLoadingView.m │ ├── RYCuteView.h │ ├── RYCuteView.m │ ├── TNActivityIndicator.h │ ├── TNActivityIndicator.m │ ├── WclEmitterButton │ ├── Sparkle.png │ ├── WclEmitterButton.h │ └── WclEmitterButton.m │ ├── XLBubbleTransition │ ├── UIViewController+XLBubbleTransition.h │ ├── UIViewController+XLBubbleTransition.m │ ├── XLBubblePopTransition.h │ ├── XLBubblePopTransition.m │ ├── XLBubblePushTransition.h │ ├── XLBubblePushTransition.m │ └── XLBubbleTransition.h │ ├── XLPaymentHUD │ ├── XLPaymentLoadingHUD.h │ ├── XLPaymentLoadingHUD.m │ ├── XLPaymentSuccessHUD.h │ └── XLPaymentSuccessHUD.m │ └── YQDownloadButton │ ├── UIView+YQBorderPath.h │ ├── UIView+YQBorderPath.m │ ├── YQDownloadButton.h │ ├── YQDownloadButton.m │ ├── YQStartButton.h │ └── YQStartButton.m ├── popTestTests ├── Info.plist └── popTestTests.m └── popTestUITests ├── Info.plist └── popTestUITests.m /1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/1.gif -------------------------------------------------------------------------------- /2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/2.png -------------------------------------------------------------------------------- /3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/3.png -------------------------------------------------------------------------------- /4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/4.png -------------------------------------------------------------------------------- /5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/5.png -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '7.0' 2 | 3 | target 'popTest' do 4 | pod 'pop', '~> 1.0' 5 | pod 'Masonry','~>0.6.1' 6 | pod 'MJRefresh' 7 | pod "JazzHands" 8 | pod 'Shimmer' 9 | 10 | end 11 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - JazzHands (2.0.8) 3 | - Masonry (0.6.4) 4 | - MJRefresh (3.1.12) 5 | - pop (1.0.9) 6 | - Shimmer (1.0.2) 7 | 8 | DEPENDENCIES: 9 | - JazzHands 10 | - Masonry (~> 0.6.1) 11 | - MJRefresh 12 | - pop (~> 1.0) 13 | - Shimmer 14 | 15 | SPEC CHECKSUMS: 16 | JazzHands: 355dc5c2b6fc38ee460d0ed7836c69539263f477 17 | Masonry: 281802d04d787ea2973179ee8bcb50500579ede2 18 | MJRefresh: b96cdb21c4aa75a7b07654311ab2f315c497e806 19 | pop: f667631a5108a2e60d9e8797c9b32ddaf2080bce 20 | Shimmer: c5374be1c2b0c9e292fb05b339a513cf291cac86 21 | 22 | PODFILE CHECKSUM: f5ae00ff270e7b324aac1fd1a7f4f29c847b0198 23 | 24 | COCOAPODS: 1.2.0.beta.1 25 | -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTAlphaAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAlphaAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTAnimatable.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimatable.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTAnimatedPagingScrollViewController.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimatedPagingScrollViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTAnimatedScrollViewController.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimatedScrollViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimator.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTBackgroundColorAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTBackgroundColorAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTConstraintConstantAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTConstraintConstantAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTConstraintMultiplierAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTConstraintMultiplierAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTCornerRadiusAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTCornerRadiusAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTEasingFunction.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTEasingFunction.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTFilmstrip.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTFilmstrip.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTFrameAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTFrameAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTHideAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTHideAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTInterpolatable.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTInterpolatable.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTJazzHands.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTJazzHands.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTLayerFillColorAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTLayerFillColorAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTLayerStrokeEndAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTLayerStrokeEndAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTLayerStrokeStartAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTLayerStrokeStartAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTMaskAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTMaskAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTPathPositionAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTPathPositionAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTRotationAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTRotationAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTScaleAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTScaleAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTScrollViewPageConstraintAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTScrollViewPageConstraintAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTShapeLayerAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTShapeLayerAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTTextColorAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTTextColorAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTTransform3DAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTTransform3DAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTTranslationAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTTranslationAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/IFTTTViewAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTViewAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/JazzHands/UIView+IFTTTJazzHands.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/UIView+IFTTTJazzHands.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/NSBundle+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Private/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASCompositeConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint+Private.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraintMaker.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraintMaker.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASLayoutConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/Masonry.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/ViewController+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Shimmer/FBShimmering.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmering.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Shimmer/FBShimmeringLayer.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmeringLayer.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Shimmer/FBShimmeringView.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmeringView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/FloatConversion.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/FloatConversion.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POP.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POP.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAction.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAction.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimatableProperty.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatableProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationEvent.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEvent.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationEventInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEventInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationPrivate.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationPrivate.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationRuntime.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationRuntime.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationTracer.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracer.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationTracerInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracerInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimator.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimatorPrivate.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatorPrivate.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPBasicAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPBasicAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPCGUtils.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCGUtils.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPCustomAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCustomAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDecayAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDecayAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDefines.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPGeometry.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPGeometry.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPLayerExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPLayerExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPMath.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPMath.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPPropertyAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPPropertyAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringSolver.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringSolver.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPVector.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPVector.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/TransformationMatrix.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/TransformationMatrix.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/UnitBezier.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/UnitBezier.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTAlphaAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAlphaAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTAnimatable.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimatable.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTAnimatedPagingScrollViewController.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimatedPagingScrollViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTAnimatedScrollViewController.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimatedScrollViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTAnimator.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTBackgroundColorAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTBackgroundColorAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTConstraintConstantAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTConstraintConstantAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTConstraintMultiplierAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTConstraintMultiplierAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTCornerRadiusAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTCornerRadiusAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTEasingFunction.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTEasingFunction.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTFilmstrip.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTFilmstrip.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTFrameAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTFrameAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTHideAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTHideAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTInterpolatable.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTInterpolatable.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTJazzHands.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTJazzHands.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTLayerFillColorAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTLayerFillColorAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTLayerStrokeEndAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTLayerStrokeEndAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTLayerStrokeStartAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTLayerStrokeStartAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTMaskAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTMaskAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTPathPositionAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTPathPositionAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTRotationAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTRotationAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTScaleAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTScaleAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTScrollViewPageConstraintAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTScrollViewPageConstraintAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTShapeLayerAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTShapeLayerAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTTextColorAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTTextColorAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTTransform3DAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTTransform3DAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTTranslationAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTTranslationAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/IFTTTViewAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/IFTTTViewAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/JazzHands/UIView+IFTTTJazzHands.h: -------------------------------------------------------------------------------- 1 | ../../../JazzHands/JazzHands/UIView+IFTTTJazzHands.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshComponent.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshComponent.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshConst.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/MJRefreshConst.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshFooter.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Base/MJRefreshHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/NSBundle+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIScrollView+MJRefresh.h -------------------------------------------------------------------------------- /Pods/Headers/Public/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | ../../../MJRefresh/MJRefresh/UIView+MJExtension.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASCompositeConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint+Private.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraintMaker.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraintMaker.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASLayoutConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/Masonry.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/ViewController+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Shimmer/FBShimmering.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmering.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Shimmer/FBShimmeringLayer.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmeringLayer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Shimmer/FBShimmeringView.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmeringView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POP.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POP.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimatableProperty.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatableProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationEvent.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEvent.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationTracer.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimator.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPBasicAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPCustomAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCustomAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPDecayAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDefines.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPGeometry.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPGeometry.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPLayerExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPLayerExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPPropertyAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPSpringAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimation.h -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTAlphaAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTAlphaAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/27/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | @interface IFTTTAlphaAnimation : IFTTTViewAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time alpha:(CGFloat)alpha; 14 | - (void)addKeyframeForTime:(CGFloat)time alpha:(CGFloat)alpha withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTAlphaAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTAlphaAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/27/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAlphaAnimation.h" 10 | 11 | @implementation IFTTTAlphaAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time alpha:(CGFloat)alpha 14 | { 15 | if (![self validAlpha:alpha]) return; 16 | [self addKeyframeForTime:time value:@(alpha)]; 17 | } 18 | 19 | - (void)addKeyframeForTime:(CGFloat)time alpha:(CGFloat)alpha withEasingFunction:(IFTTTEasingFunction)easingFunction 20 | { 21 | if (![self validAlpha:alpha]) return; 22 | [self addKeyframeForTime:time value:@(alpha) withEasingFunction:easingFunction]; 23 | } 24 | 25 | - (BOOL)validAlpha:(CGFloat)alpha 26 | { 27 | NSAssert((alpha >= 0.f) && (alpha <= 1.f), @"Alpha values must be between zero and one."); 28 | if ((alpha < 0.f) || (alpha > 1.f)) return NO; 29 | return YES; 30 | } 31 | 32 | - (void)animate:(CGFloat)time 33 | { 34 | if (!self.hasKeyframes) return; 35 | self.view.alpha = (CGFloat)[(NSNumber *)[self valueAtTime:time] floatValue]; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTAnimatable.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTAnimatable.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol IFTTTAnimatable 12 | 13 | - (void)animate:(CGFloat)time; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTAnimatedScrollViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTAnimatedScrollViewController.h 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/27/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | @class IFTTTAnimator; 11 | 12 | @protocol IFTTTAnimatedScrollViewControllerDelegate; 13 | 14 | @interface IFTTTAnimatedScrollViewController : UIViewController 15 | 16 | @property (nonatomic, weak) id delegate; 17 | 18 | @property (nonatomic, strong) IFTTTAnimator *animator; 19 | @property (nonatomic, strong) UIScrollView *scrollView; 20 | 21 | @end 22 | 23 | @protocol IFTTTAnimatedScrollViewControllerDelegate 24 | 25 | @optional 26 | 27 | /** 28 | * The user has scrolled to the last page of the scrollview. 29 | * 30 | * @param animatedScrollViewController the scroll view controller that's been scrolled 31 | */ 32 | - (void)animatedScrollViewControllerDidScrollToEnd:(IFTTTAnimatedScrollViewController *)animatedScrollViewController; 33 | 34 | /** 35 | * The user has released the scrollview (ended dragging) at the last page of the scrollview. 36 | * 37 | * @param animatedScrollViewController the scroll view controller that's been scrolled 38 | */ 39 | - (void)animatedScrollViewControllerDidEndDraggingAtEnd:(IFTTTAnimatedScrollViewController *)animatedScrollViewController; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/27/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "IFTTTEasingFunction.h" 11 | #import "IFTTTInterpolatable.h" 12 | #import "IFTTTAnimatable.h" 13 | 14 | @interface IFTTTAnimation : NSObject 15 | 16 | - (void)addKeyframeForTime:(CGFloat)time value:(id)value; 17 | - (void)addKeyframeForTime:(CGFloat)time value:(id)value withEasingFunction:(IFTTTEasingFunction)easingFunction; 18 | - (id)valueAtTime:(CGFloat)time; 19 | - (BOOL)hasKeyframes; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/27/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | #import "IFTTTFilmstrip.h" 11 | 12 | @interface IFTTTAnimation () 13 | 14 | @property (nonatomic, strong) IFTTTFilmstrip *filmstrip; 15 | 16 | @end 17 | 18 | @implementation IFTTTAnimation 19 | 20 | - (instancetype)init 21 | { 22 | if ((self = [super init])) { 23 | _filmstrip = [IFTTTFilmstrip new]; 24 | } 25 | return self; 26 | } 27 | 28 | - (void)addKeyframeForTime:(CGFloat)time value:(id)value 29 | { 30 | if (!value) return; 31 | [self.filmstrip setValue:value atTime:time]; 32 | } 33 | 34 | - (void)addKeyframeForTime:(CGFloat)time value:(id)value withEasingFunction:(IFTTTEasingFunction)easingFunction 35 | { 36 | if ((!value) || (!easingFunction)) return; 37 | [self.filmstrip setValue:value atTime:time withEasingFunction:easingFunction]; 38 | } 39 | 40 | - (id)valueAtTime:(CGFloat)time 41 | { 42 | if (self.filmstrip.isEmpty) return nil; 43 | return [self.filmstrip valueAtTime:time]; 44 | } 45 | 46 | - (BOOL)hasKeyframes 47 | { 48 | return !self.filmstrip.isEmpty; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTAnimator.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTAnimator.h 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/28/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol IFTTTAnimatable; 12 | 13 | @interface IFTTTAnimator : NSObject 14 | 15 | - (void)addAnimation:(id)animation; 16 | - (void)removeAnimation:(id)animation; 17 | - (void)removeAllAnimations; 18 | 19 | - (void)animate:(CGFloat)time; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTAnimator.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTAnimator.m 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/28/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimator.h" 10 | #import "IFTTTAnimatable.h" 11 | 12 | @interface IFTTTAnimator () 13 | 14 | @property (nonatomic, strong) NSMutableArray *animations; 15 | 16 | @end 17 | 18 | @implementation IFTTTAnimator 19 | 20 | - (instancetype)init 21 | { 22 | if ((self = [super init])) { 23 | self.animations = [NSMutableArray new]; 24 | } 25 | return self; 26 | } 27 | 28 | - (void)animate:(CGFloat)time 29 | { 30 | for (id animation in self.animations) { 31 | [animation animate:time]; 32 | } 33 | } 34 | 35 | - (void)addAnimation:(id)animation 36 | { 37 | [self.animations addObject:animation]; 38 | } 39 | 40 | - (void)removeAnimation:(id)animation 41 | { 42 | [self.animations removeObject:animation]; 43 | } 44 | 45 | - (void)removeAllAnimations 46 | { 47 | [self.animations removeAllObjects]; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTBackgroundColorAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTBackgroundColorAnimation.h 3 | // IFTTT 4 | // 5 | // Created by Max Meyers on 10/10/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | @interface IFTTTBackgroundColorAnimation : IFTTTViewAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color; 14 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTBackgroundColorAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTBackgroundColorAnimation.m 3 | // IFTTT 4 | // 5 | // Created by Max Meyers on 10/10/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTBackgroundColorAnimation.h" 10 | 11 | @implementation IFTTTBackgroundColorAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color 14 | { 15 | if (![self validColor:color]) return; 16 | [self addKeyframeForTime:time value:color]; 17 | } 18 | 19 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color withEasingFunction:(IFTTTEasingFunction)easingFunction 20 | { 21 | if (![self validColor:color]) return; 22 | [self addKeyframeForTime:time value:color withEasingFunction:easingFunction]; 23 | } 24 | 25 | - (BOOL)validColor:(UIColor *)color 26 | { 27 | NSAssert((color != nil), @"Color must not be nil."); 28 | if (!color) return NO; 29 | return YES; 30 | } 31 | 32 | - (void)animate:(CGFloat)time 33 | { 34 | if (!self.hasKeyframes) return; 35 | self.view.backgroundColor = (UIColor *)[self valueAtTime:time]; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTConstraintConstantAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTConstraintConstantAnimation.h 3 | // JazzHands 4 | // 5 | // Created by willsbor Kang on 7/9/14. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | @interface IFTTTConstraintConstantAnimation : IFTTTAnimation 12 | 13 | - (instancetype)initWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint; 14 | + (instancetype)animationWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint; 15 | - (void)addKeyframeForTime:(CGFloat)time constant:(CGFloat)constant; 16 | - (void)addKeyframeForTime:(CGFloat)time constant:(CGFloat)constant withEasingFunction:(IFTTTEasingFunction)easingFunction; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTConstraintConstantAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTConstraintConstantAnimation.m 3 | // JazzHands 4 | // 5 | // Created by willsbor Kang on 7/9/14. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTConstraintConstantAnimation.h" 10 | 11 | @interface IFTTTConstraintConstantAnimation () 12 | 13 | @property (nonatomic, strong) UIView *superview; 14 | @property (nonatomic, strong) NSLayoutConstraint *constraint; 15 | 16 | @end 17 | 18 | @implementation IFTTTConstraintConstantAnimation 19 | 20 | - (instancetype)initWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint 21 | { 22 | if ((self = [super init])) { 23 | _superview = superview; 24 | _constraint = constraint; 25 | } 26 | return self; 27 | } 28 | 29 | + (instancetype)animationWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint 30 | { 31 | return [[self alloc] initWithSuperview:superview constraint:constraint]; 32 | } 33 | 34 | - (void)addKeyframeForTime:(CGFloat)time constant:(CGFloat)constant 35 | { 36 | [self addKeyframeForTime:time value:@(constant)]; 37 | } 38 | 39 | - (void)addKeyframeForTime:(CGFloat)time constant:(CGFloat)constant withEasingFunction:(IFTTTEasingFunction)easingFunction 40 | { 41 | [self addKeyframeForTime:time value:@(constant) withEasingFunction:easingFunction]; 42 | } 43 | 44 | - (void)animate:(CGFloat)time 45 | { 46 | if (!self.hasKeyframes) return; 47 | self.constraint.constant = (CGFloat)[(NSNumber *)[self valueAtTime:time] floatValue]; 48 | [self.superview layoutIfNeeded]; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTConstraintMultiplierAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTConstraintMultiplierAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/18/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | typedef NS_ENUM(NSUInteger, IFTTTLayoutAttribute) { 12 | IFTTTLayoutAttributeOriginX, 13 | IFTTTLayoutAttributeOriginY, 14 | IFTTTLayoutAttributeCenterX, 15 | IFTTTLayoutAttributeCenterY, 16 | IFTTTLayoutAttributeWidth, 17 | IFTTTLayoutAttributeHeight 18 | }; 19 | 20 | @interface IFTTTConstraintMultiplierAnimation : IFTTTAnimation 21 | 22 | - (instancetype)initWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint attribute:(IFTTTLayoutAttribute)attribute referenceView:(UIView *)referenceView; 23 | - (instancetype)initWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint attribute:(IFTTTLayoutAttribute)attribute referenceView:(UIView *)referenceView constant:(CGFloat)constant; 24 | + (instancetype)animationWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint attribute:(IFTTTLayoutAttribute)attribute referenceView:(UIView *)referenceView; 25 | + (instancetype)animationWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint attribute:(IFTTTLayoutAttribute)attribute referenceView:(UIView *)referenceView constant:(CGFloat)constant; 26 | - (void)addKeyframeForTime:(CGFloat)time multiplier:(CGFloat)multiplier; 27 | - (void)addKeyframeForTime:(CGFloat)time multiplier:(CGFloat)multiplier withEasingFunction:(IFTTTEasingFunction)easingFunction; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTCornerRadiusAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTCornerRadiusAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Nuno Gonçalves on 3/8/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | @interface IFTTTCornerRadiusAnimation : IFTTTViewAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time cornerRadius:(CGFloat)cornerRadius; 14 | - (void)addKeyframeForTime:(CGFloat)time cornerRadius:(CGFloat)cornerRadius withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTCornerRadiusAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTCornerRadiusAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Nuno Gonçalves on 3/8/13. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTCornerRadiusAnimation.h" 10 | 11 | @implementation IFTTTCornerRadiusAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time cornerRadius:(CGFloat)cornerRadius 14 | { 15 | if (![self validRadius:cornerRadius]) return; 16 | [self addKeyframeForTime:time value:@(cornerRadius)]; 17 | } 18 | 19 | - (void)addKeyframeForTime:(CGFloat)time cornerRadius:(CGFloat)cornerRadius withEasingFunction:(IFTTTEasingFunction)easingFunction 20 | { 21 | if (![self validRadius:cornerRadius]) return; 22 | [self addKeyframeForTime:time value:@(cornerRadius) withEasingFunction:easingFunction]; 23 | } 24 | 25 | - (BOOL)validRadius:(CGFloat)radius 26 | { 27 | NSAssert((radius >= 0.f), @"Corner radius must be greater than or equal to zero."); 28 | if (!(radius >= 0.f)) return NO; 29 | return YES; 30 | } 31 | 32 | - (void)animate:(CGFloat)time 33 | { 34 | if (!self.hasKeyframes) return; 35 | self.view.layer.cornerRadius = (CGFloat)[(NSNumber *)[self valueAtTime:time] floatValue]; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTEasingFunction.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTEasingFunction.h 3 | // JazzHands 4 | // 5 | // Created by Felix Jendrusch on 1/9/15. 6 | // 7 | // 8 | 9 | /** 10 | * Easing functions specify the rate of change in your animations over time. 11 | * Several standard easings are provided here. To explore these, and discover others, 12 | * check out http://easings.net 13 | */ 14 | 15 | // Copied from Robert Böhnke's RBBAnimation, original available here: 16 | // 17 | 18 | #import 19 | #import 20 | 21 | typedef CGFloat (^IFTTTEasingFunction) (CGFloat t); 22 | 23 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionLinear; 24 | 25 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionEaseInQuad; 26 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionEaseOutQuad; 27 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionEaseInOutQuad; 28 | 29 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionEaseInCubic; 30 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionEaseOutCubic; 31 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionEaseInOutCubic; 32 | 33 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionEaseInBounce; 34 | UIKIT_EXTERN IFTTTEasingFunction const IFTTTEasingFunctionEaseOutBounce; 35 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTFilmstrip.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTFilmstrip.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "IFTTTEasingFunction.h" 11 | #import "IFTTTInterpolatable.h" 12 | 13 | @interface IFTTTFilmstrip : NSObject 14 | 15 | - (BOOL)isEmpty; 16 | - (void)setValue:(id)value atTime:(CGFloat)time; 17 | - (void)setValue:(id)value atTime:(CGFloat)time withEasingFunction:(IFTTTEasingFunction)easingFunction; 18 | - (id)valueAtTime:(CGFloat)time; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTFrameAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTFrameAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/27/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | @interface IFTTTFrameAnimation : IFTTTViewAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time frame:(CGRect)frame; 14 | - (void)addKeyframeForTime:(CGFloat)time frame:(CGRect)frame withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTFrameAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTFrameAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/27/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTFrameAnimation.h" 10 | 11 | @implementation IFTTTFrameAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time frame:(CGRect)frame 14 | { 15 | if (![self validFrame:frame]) return; 16 | [self addKeyframeForTime:time value:[NSValue valueWithCGRect:frame]]; 17 | } 18 | 19 | - (void)addKeyframeForTime:(CGFloat)time frame:(CGRect)frame withEasingFunction:(IFTTTEasingFunction)easingFunction 20 | { 21 | if (![self validFrame:frame]) return; 22 | [self addKeyframeForTime:time value:[NSValue valueWithCGRect:frame] withEasingFunction:easingFunction]; 23 | } 24 | 25 | - (BOOL)validFrame:(CGRect)frame 26 | { 27 | NSAssert((CGRectGetWidth(frame) >= 0.f) && (CGRectGetHeight(frame) >= 0.f), @"Frame width and height must be greater than or equal to zero."); 28 | if (!((CGRectGetWidth(frame) >= 0.f) && (CGRectGetHeight(frame) >= 0.f))) return NO; 29 | return YES; 30 | } 31 | 32 | - (void)animate:(CGFloat)time 33 | { 34 | if (!self.hasKeyframes) return; 35 | 36 | // Store the current transform 37 | CGAffineTransform tempTransform = self.view.transform; 38 | 39 | // Reset transform to avoid warping 40 | self.view.transform = CGAffineTransformIdentity; 41 | self.view.frame = (CGRect)[(NSValue *)[self valueAtTime:time] CGRectValue]; 42 | 43 | // Return to original transform 44 | self.view.transform = tempTransform; 45 | } 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTHideAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTHideAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/28/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | @interface IFTTTHideAnimation : IFTTTAnimation 12 | 13 | + (instancetype)animationWithView:(UIView *)view hideAt:(CGFloat)time; 14 | + (instancetype)animationWithView:(UIView *)view showAt:(CGFloat)time; 15 | 16 | - (instancetype)initWithView:(UIView *)view hideAt:(CGFloat)time; 17 | - (instancetype)initWithView:(UIView *)view showAt:(CGFloat)time; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTHideAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTHideAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/28/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTHideAnimation.h" 10 | 11 | @interface IFTTTHideAnimation () 12 | 13 | @property (nonatomic, strong) UIView *view; 14 | 15 | @end 16 | 17 | @implementation IFTTTHideAnimation 18 | 19 | + (instancetype)animationWithView:(UIView *)view hideAt:(CGFloat)time 20 | { 21 | IFTTTHideAnimation *animation = [[[self class] alloc] initWithView:view 22 | hideAt:time]; 23 | return animation; 24 | } 25 | 26 | + (instancetype)animationWithView:(UIView *)view showAt:(CGFloat)time 27 | { 28 | IFTTTHideAnimation *animation = [[[self class] alloc] initWithView:view 29 | showAt:time]; 30 | return animation; 31 | } 32 | 33 | - (instancetype)initWithView:(UIView *)view hideAt:(CGFloat)time 34 | { 35 | if((self = [super init])) { 36 | _view = view; 37 | [self addKeyframeForTime:time value:@(NO)]; 38 | [self addKeyframeForTime:time + 1 value:@(YES)]; 39 | } 40 | return self; 41 | } 42 | 43 | - (instancetype)initWithView:(UIView *)view showAt:(CGFloat)time 44 | { 45 | if((self = [super init])) { 46 | _view = view; 47 | [self addKeyframeForTime:time value:@(YES)]; 48 | [self addKeyframeForTime:time + 1 value:@(NO)]; 49 | } 50 | return self; 51 | } 52 | 53 | - (void)animate:(CGFloat)time 54 | { 55 | if (!self.hasKeyframes) return; 56 | self.view.hidden = (BOOL)[(NSNumber *)[self valueAtTime:time] boolValue]; 57 | } 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTJazzHands.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTJazzHands.h 3 | // JazzHands 4 | // 5 | // Created by Devin Foley on 9/28/13. 6 | // Copyright (c) 2013 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #pragma once 10 | 11 | #import 12 | #import 13 | 14 | #import "IFTTTAnimator.h" 15 | #import "IFTTTInterpolatable.h" 16 | #import "IFTTTAnimatable.h" 17 | #import "IFTTTFilmstrip.h" 18 | #import "IFTTTViewAnimation.h" 19 | #import "IFTTTShapeLayerAnimation.h" 20 | 21 | #import "IFTTTAnimatedScrollViewController.h" 22 | #import "IFTTTAnimatedPagingScrollViewController.h" 23 | 24 | #import "IFTTTAlphaAnimation.h" 25 | #import "IFTTTMaskAnimation.h" 26 | #import "IFTTTCornerRadiusAnimation.h" 27 | #import "IFTTTFrameAnimation.h" 28 | #import "IFTTTHideAnimation.h" 29 | #import "IFTTTBackgroundColorAnimation.h" 30 | #import "IFTTTRotationAnimation.h" 31 | #import "IFTTTScaleAnimation.h" 32 | #import "IFTTTTranslationAnimation.h" 33 | #import "IFTTTTransform3DAnimation.h" 34 | #import "IFTTTLayerStrokeStartAnimation.h" 35 | #import "IFTTTLayerStrokeEndAnimation.h" 36 | #import "IFTTTLayerFillColorAnimation.h" 37 | #import "IFTTTPathPositionAnimation.h" 38 | #import "IFTTTTextColorAnimation.h" 39 | #import "IFTTTConstraintConstantAnimation.h" 40 | #import "IFTTTScrollViewPageConstraintAnimation.h" 41 | #import "IFTTTConstraintMultiplierAnimation.h" 42 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTLayerFillColorAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTLayerFillColorAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Pierluigi D'Andrea on 07/05/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTShapeLayerAnimation.h" 10 | 11 | @interface IFTTTLayerFillColorAnimation : IFTTTShapeLayerAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color; 14 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTLayerFillColorAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTLayerFillColorAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Pierluigi D'Andrea on 07/05/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTLayerFillColorAnimation.h" 10 | 11 | @implementation IFTTTLayerFillColorAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color 14 | { 15 | if (![self validColor:color]) return; 16 | [self addKeyframeForTime:time value:color]; 17 | } 18 | 19 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color withEasingFunction:(IFTTTEasingFunction)easingFunction 20 | { 21 | if (![self validColor:color]) return; 22 | [self addKeyframeForTime:time value:color withEasingFunction:easingFunction]; 23 | } 24 | 25 | - (BOOL)validColor:(UIColor *)color 26 | { 27 | NSAssert((color != nil), @"Color must not be nil."); 28 | if (!color) return NO; 29 | return YES; 30 | } 31 | 32 | - (void)animate:(CGFloat)time 33 | { 34 | if (!self.hasKeyframes) return; 35 | self.layer.fillColor = ((UIColor *)[self valueAtTime:time]).CGColor; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTLayerStrokeEndAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTLayerStrokeEndAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Pierluigi D'Andrea on 06/05/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTShapeLayerAnimation.h" 10 | 11 | @interface IFTTTLayerStrokeEndAnimation : IFTTTShapeLayerAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time strokeEnd:(CGFloat)strokeEnd; 14 | - (void)addKeyframeForTime:(CGFloat)time strokeEnd:(CGFloat)strokeEnd withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTLayerStrokeStartAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTLayerStrokeStartAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Pierluigi D'Andrea on 06/05/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTShapeLayerAnimation.h" 10 | 11 | @interface IFTTTLayerStrokeStartAnimation : IFTTTShapeLayerAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time strokeStart:(CGFloat)strokeStart; 14 | - (void)addKeyframeForTime:(CGFloat)time strokeStart:(CGFloat)strokeStart withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTMaskAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTMaskAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Amir Shavit on 7/26/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | typedef NS_ENUM(NSUInteger, IFTTTMaskEffect) 12 | { 13 | IFTTTMaskEffectRevealFromTop, 14 | IFTTTMaskEffectRevealFromLeft, 15 | IFTTTMaskEffectRevealFromBottom, 16 | IFTTTMaskEffectRevealFromRight, 17 | IFTTTMaskEffectRevealFromCenterToCircle, 18 | IFTTTMaskEffectRevealFromCenterToBounds 19 | }; 20 | 21 | @interface IFTTTMaskAnimation : IFTTTAnimation 22 | 23 | - (instancetype)initWithView:(UIView *)view maskEffect:(IFTTTMaskEffect)maskEffect; 24 | + (instancetype)animationWithView:(UIView *)view maskEffect:(IFTTTMaskEffect)maskEffect; 25 | 26 | - (void)addKeyframeForTime:(CGFloat)time visibility:(CGFloat)percent; 27 | - (void)addKeyframeForTime:(CGFloat)time visibility:(CGFloat)percent withEasingFunction:(IFTTTEasingFunction)easingFunction; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTPathPositionAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTPathPositionAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/30/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | @interface IFTTTPathPositionAnimation : IFTTTAnimation 12 | 13 | @property (nonatomic, strong) NSString *rotationMode; 14 | @property (nonatomic, assign) CGPathRef path; 15 | 16 | - (instancetype)initWithView:(UIView *)view path:(CGPathRef)path; 17 | + (instancetype)animationWithView:(UIView *)view path:(CGPathRef)path; 18 | - (void)addKeyframeForTime:(CGFloat)time animationProgress:(CGFloat)animationProgress; 19 | - (void)addKeyframeForTime:(CGFloat)time animationProgress:(CGFloat)animationProgress withEasingFunction:(IFTTTEasingFunction)easingFunction; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTRotationAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTRotationAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Vahur Roosimaa on 12/7/13. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | @interface IFTTTRotationAnimation : IFTTTViewAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time rotation:(CGFloat)degrees; 14 | - (void)addKeyframeForTime:(CGFloat)time rotation:(CGFloat)degrees withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTRotationAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTRotationAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Vahur Roosimaa on 12/7/13. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTRotationAnimation.h" 10 | #import "UIView+IFTTTJazzHands.h" 11 | 12 | @implementation IFTTTRotationAnimation 13 | 14 | - (void)addKeyframeForTime:(CGFloat)time rotation:(CGFloat)degrees 15 | { 16 | [self addKeyframeForTime:time value:@(degrees)]; 17 | } 18 | 19 | - (void)addKeyframeForTime:(CGFloat)time rotation:(CGFloat)degrees withEasingFunction:(IFTTTEasingFunction)easingFunction 20 | { 21 | [self addKeyframeForTime:time value:@(degrees) withEasingFunction:easingFunction]; 22 | } 23 | 24 | - (void)animate:(CGFloat)time 25 | { 26 | if (!self.hasKeyframes) return; 27 | CGFloat degrees = (CGFloat)[(NSNumber *)[self valueAtTime:time] floatValue]; 28 | CGFloat radians = degrees * (CGFloat)(M_PI / -180.0); 29 | CGAffineTransform rotationTransform = CGAffineTransformMakeRotation(radians); 30 | self.view.iftttRotationTransform = [NSValue valueWithCGAffineTransform:rotationTransform]; 31 | CGAffineTransform newTransform = rotationTransform; 32 | if (self.view.iftttScaleTransform) { 33 | newTransform = CGAffineTransformConcat(newTransform, [self.view.iftttScaleTransform CGAffineTransformValue]); 34 | } 35 | if (self.view.iftttTranslationTransform) { 36 | newTransform = CGAffineTransformConcat(newTransform, [self.view.iftttTranslationTransform CGAffineTransformValue]); 37 | } 38 | self.view.transform = newTransform; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTScaleAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTScaleAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Steven Mok on 1/10/14. 6 | // Copyright (c) 2014 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | @interface IFTTTScaleAnimation : IFTTTViewAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time scale:(CGFloat)scale; 14 | - (void)addKeyframeForTime:(CGFloat)time scale:(CGFloat)scale withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTScrollViewPageConstraintAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTScrollViewPageConstraintAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/18/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | typedef NS_ENUM(NSUInteger, IFTTTHorizontalPositionAttribute) { 12 | IFTTTHorizontalPositionAttributeCenterX, 13 | IFTTTHorizontalPositionAttributeLeft, 14 | IFTTTHorizontalPositionAttributeRight 15 | }; 16 | 17 | @interface IFTTTScrollViewPageConstraintAnimation : IFTTTAnimation 18 | 19 | @property (nonatomic, assign) CGFloat pageWidth; 20 | 21 | - (instancetype)initWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint pageWidth:(CGFloat)pageWidth attribute:(IFTTTHorizontalPositionAttribute)attribute; 22 | + (instancetype)animationWithSuperview:(UIView *)superview constraint:(NSLayoutConstraint *)constraint pageWidth:(CGFloat)pageWidth attribute:(IFTTTHorizontalPositionAttribute)attribute; 23 | - (void)addKeyframeForTime:(CGFloat)time page:(CGFloat)page; 24 | - (void)addKeyframeForTime:(CGFloat)time page:(CGFloat)page withEasingFunction:(IFTTTEasingFunction)easingFunction; 25 | - (void)addKeyframeForTime:(CGFloat)time page:(CGFloat)page constant:(CGFloat)constant; 26 | - (void)addKeyframeForTime:(CGFloat)time page:(CGFloat)page constant:(CGFloat)constant withEasingFunction:(IFTTTEasingFunction)easingFunction; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTShapeLayerAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTShapeLayerAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | @interface IFTTTShapeLayerAnimation : IFTTTAnimation 12 | 13 | @property (nonatomic, strong, readonly) CAShapeLayer *layer; 14 | 15 | - (instancetype)initWithLayer:(CAShapeLayer *)layer; 16 | + (instancetype)animationWithLayer:(CAShapeLayer *)layer; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTShapeLayerAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTShapeLayerAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTShapeLayerAnimation.h" 10 | 11 | @interface IFTTTShapeLayerAnimation () 12 | 13 | @property (nonatomic, strong, readwrite) CAShapeLayer *layer; 14 | 15 | @end 16 | 17 | @implementation IFTTTShapeLayerAnimation 18 | 19 | - (instancetype)initWithLayer:(CAShapeLayer *)layer 20 | { 21 | if ((self = [super init])) { 22 | _layer = layer; 23 | } 24 | return self; 25 | } 26 | 27 | + (instancetype)animationWithLayer:(CAShapeLayer *)layer 28 | { 29 | return [[self alloc] initWithLayer:layer]; 30 | } 31 | 32 | @end -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTTextColorAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTTextColorAnimation.h 3 | // IFTTT 4 | // 5 | // Created by Iulian Onofrei on 07/05/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | @interface IFTTTTextColorAnimation : IFTTTAnimation 12 | 13 | - (instancetype)initWithLabel:(UILabel *)label; 14 | + (instancetype)animationWithLabel:(UILabel *)label; 15 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color; 16 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color withEasingFunction:(IFTTTEasingFunction)easingFunction; 17 | 18 | @end -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTTextColorAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTTextColorAnimation.m 3 | // IFTTT 4 | // 5 | // Created by Iulian Onofrei on 07/05/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTTextColorAnimation.h" 10 | 11 | @interface IFTTTTextColorAnimation () 12 | 13 | @property (nonatomic, strong) UILabel *label; 14 | 15 | @end 16 | 17 | @implementation IFTTTTextColorAnimation 18 | 19 | - (instancetype)initWithLabel:(UILabel *)label 20 | { 21 | if ((self = [super init])) { 22 | _label = label; 23 | } 24 | return self; 25 | } 26 | 27 | + (instancetype)animationWithLabel:(UILabel *)label 28 | { 29 | return [[self alloc] initWithLabel:label]; 30 | } 31 | 32 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color 33 | { 34 | if (![self validColor:color]) return; 35 | [self addKeyframeForTime:time value:color]; 36 | } 37 | 38 | - (void)addKeyframeForTime:(CGFloat)time color:(UIColor *)color withEasingFunction:(IFTTTEasingFunction)easingFunction 39 | { 40 | if (![self validColor:color]) return; 41 | [self addKeyframeForTime:time value:color withEasingFunction:easingFunction]; 42 | } 43 | 44 | - (BOOL)validColor:(UIColor *)color 45 | { 46 | NSAssert((color != nil), @"Color must not be nil."); 47 | if (!color) return NO; 48 | return YES; 49 | } 50 | 51 | - (void)animate:(CGFloat)time 52 | { 53 | if (!self.hasKeyframes) return; 54 | self.label.textColor = (UIColor *)[self valueAtTime:time]; 55 | } 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTTransform3DAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTTransform3DAnimation.h 3 | // JazzHands 4 | // 5 | // Created by QFish on 3/3/14. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | struct IFTTTTransform3DTranslate 12 | { 13 | CGFloat tx, ty, tz; 14 | }; 15 | 16 | typedef struct IFTTTTransform3DTranslate IFTTTTransform3DTranslate; 17 | 18 | struct IFTTTTransform3DScale 19 | { 20 | CGFloat sx, sy, sz; 21 | }; 22 | 23 | typedef struct IFTTTTransform3DScale IFTTTTransform3DScale; 24 | 25 | struct IFTTTTransform3DRotate 26 | { 27 | CGFloat angle; 28 | CGFloat x, y, z; 29 | }; 30 | 31 | typedef struct IFTTTTransform3DRotate IFTTTTransform3DRotate; 32 | 33 | @interface IFTTTTransform3D : NSObject 34 | 35 | @property (nonatomic, assign) CGFloat m34; 36 | @property (nonatomic, assign) IFTTTTransform3DScale scale; 37 | @property (nonatomic, assign) IFTTTTransform3DRotate rotate; 38 | @property (nonatomic, assign) IFTTTTransform3DTranslate translate; 39 | 40 | + (instancetype)transformWithM34:(CGFloat)m34; 41 | - (id)initWithM34:(CGFloat)m34; 42 | 43 | @end 44 | 45 | @interface IFTTTTransform3DAnimation : IFTTTViewAnimation 46 | 47 | - (void)addKeyframeForTime:(CGFloat)time transform:(IFTTTTransform3D *)transform; 48 | - (void)addKeyframeForTime:(CGFloat)time transform:(IFTTTTransform3D *)transform withEasingFunction:(IFTTTEasingFunction)easingFunction; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTTranslationAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTTranslationAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | @interface IFTTTTranslationAnimation : IFTTTViewAnimation 12 | 13 | - (void)addKeyframeForTime:(CGFloat)time translation:(CGPoint)translation; 14 | - (void)addKeyframeForTime:(CGFloat)time translation:(CGPoint)translation withEasingFunction:(IFTTTEasingFunction)easingFunction; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTTranslationAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTTranslationAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTTranslationAnimation.h" 10 | #import "UIView+IFTTTJazzHands.h" 11 | 12 | @implementation IFTTTTranslationAnimation 13 | 14 | - (void)addKeyframeForTime:(CGFloat)time translation:(CGPoint)translation 15 | { 16 | [self addKeyframeForTime:time value:[NSValue valueWithCGPoint:translation]]; 17 | } 18 | 19 | - (void)addKeyframeForTime:(CGFloat)time translation:(CGPoint)translation withEasingFunction:(IFTTTEasingFunction)easingFunction 20 | { 21 | [self addKeyframeForTime:time value:[NSValue valueWithCGPoint:translation] withEasingFunction:easingFunction]; 22 | } 23 | 24 | - (void)animate:(CGFloat)time 25 | { 26 | if (!self.hasKeyframes) return; 27 | CGPoint translation = (CGPoint)[(NSValue *)[self valueAtTime:time] CGPointValue]; 28 | CGAffineTransform translationTransform = CGAffineTransformMakeTranslation(translation.x, translation.y); 29 | self.view.iftttTranslationTransform = [NSValue valueWithCGAffineTransform:translationTransform]; 30 | CGAffineTransform newTransform = translationTransform; 31 | if (self.view.iftttRotationTransform) { 32 | newTransform = CGAffineTransformConcat(newTransform, [self.view.iftttRotationTransform CGAffineTransformValue]); 33 | } 34 | if (self.view.iftttScaleTransform) { 35 | newTransform = CGAffineTransformConcat(newTransform, [self.view.iftttScaleTransform CGAffineTransformValue]); 36 | } 37 | self.view.transform = newTransform; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTViewAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTViewAnimation.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTAnimation.h" 10 | 11 | @interface IFTTTViewAnimation : IFTTTAnimation 12 | 13 | @property (nonatomic, strong, readonly) UIView *view; 14 | 15 | - (instancetype)initWithView:(UIView *)view; 16 | + (instancetype)animationWithView:(UIView *)view; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/IFTTTViewAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // IFTTTViewAnimation.m 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "IFTTTViewAnimation.h" 10 | 11 | @interface IFTTTViewAnimation () 12 | 13 | @property (nonatomic, strong, readwrite) UIView *view; 14 | 15 | @end 16 | 17 | @implementation IFTTTViewAnimation 18 | 19 | - (instancetype)initWithView:(UIView *)view 20 | { 21 | if ((self = [super init])) { 22 | _view = view; 23 | } 24 | return self; 25 | } 26 | 27 | + (instancetype)animationWithView:(UIView *)view 28 | { 29 | return [[self alloc] initWithView:view]; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/UIView+IFTTTJazzHands.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+IFTTTJazzHands.h 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (IFTTTJazzHands) 12 | 13 | @property (nonatomic, strong) NSValue *iftttRotationTransform; 14 | @property (nonatomic, strong) NSValue *iftttScaleTransform; 15 | @property (nonatomic, strong) NSValue *iftttTranslationTransform; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/JazzHands/JazzHands/UIView+IFTTTJazzHands.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+IFTTTJazzHands.m 3 | // JazzHands 4 | // 5 | // Created by Laura Skelton on 6/17/15. 6 | // Copyright (c) 2015 IFTTT Inc. All rights reserved. 7 | // 8 | 9 | #import "UIView+IFTTTJazzHands.h" 10 | #import 11 | 12 | @implementation UIView (IFTTTJazzHands) 13 | 14 | - (NSValue *)iftttRotationTransform 15 | { 16 | return objc_getAssociatedObject(self, @selector(iftttRotationTransform)); 17 | } 18 | 19 | - (void)setIftttRotationTransform:(NSValue *)iftttRotationTransform 20 | { 21 | objc_setAssociatedObject(self, @selector(iftttRotationTransform), iftttRotationTransform, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 22 | } 23 | 24 | - (NSValue *)iftttScaleTransform 25 | { 26 | return objc_getAssociatedObject(self, @selector(iftttScaleTransform)); 27 | } 28 | 29 | - (void)setIftttScaleTransform:(NSValue *)iftttScaleTransform 30 | { 31 | objc_setAssociatedObject(self, @selector(iftttScaleTransform), iftttScaleTransform, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 32 | } 33 | 34 | - (NSValue *)iftttTranslationTransform 35 | { 36 | return objc_getAssociatedObject(self, @selector(iftttTranslationTransform)); 37 | } 38 | 39 | - (void)setIftttTranslationTransform:(NSValue *)iftttTranslationTransform 40 | { 41 | objc_setAssociatedObject(self, @selector(iftttTranslationTransform), iftttTranslationTransform, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 42 | } 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /Pods/JazzHands/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 IFTTT Inc 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Pods/MJRefresh/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshAutoFooter : MJRefreshFooter 12 | /** 是否自动刷新(默认为YES) */ 13 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 14 | 15 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 16 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); 17 | 18 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 19 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 20 | @end 21 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshBackFooter : MJRefreshFooter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshFooter.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/5. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 上拉刷新控件 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshFooter : MJRefreshComponent 13 | /** 创建footer */ 14 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建footer */ 16 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 提示没有更多的数据 */ 19 | - (void)endRefreshingWithNoMoreData; 20 | - (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData"); 21 | 22 | /** 重置没有更多的数据(消除没有更多数据的状态) */ 23 | - (void)resetNoMoreData; 24 | 25 | /** 忽略多少scrollView的contentInset的bottom */ 26 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; 27 | 28 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏。默认是NO) */ 29 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden; 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshHeader.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 下拉刷新控件:负责监控用户下拉的状态 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshHeader : MJRefreshComponent 13 | /** 创建header */ 14 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建header */ 16 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 19 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 20 | /** 上一次下拉刷新成功的时间 */ 21 | @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime; 22 | 23 | /** 忽略多少scrollView的contentInset的top */ 24 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 12 | /** 菊花的样式 */ 13 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoFooter.h" 10 | 11 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 12 | /** 文字距离圈圈、箭头的距离 */ 13 | @property (assign, nonatomic) CGFloat labelLeftInset; 14 | /** 显示刷新状态的label */ 15 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 16 | 17 | /** 设置state状态下的文字 */ 18 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 19 | 20 | /** 隐藏刷新状态的文字 */ 21 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackFooter.h" 10 | 11 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 12 | /** 文字距离圈圈、箭头的距离 */ 13 | @property (assign, nonatomic) CGFloat labelLeftInset; 14 | /** 显示刷新状态的label */ 15 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 16 | /** 设置state状态下的文字 */ 17 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 18 | 19 | /** 获取state状态下的title */ 20 | - (NSString *)titleForState:(MJRefreshState)state; 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshGifHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *gifView; 13 | 14 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 15 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 16 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshHeader.h" 10 | 11 | @interface MJRefreshStateHeader : MJRefreshHeader 12 | #pragma mark - 刷新时间相关 13 | /** 利用这个block来决定显示的更新时间文字 */ 14 | @property (copy, nonatomic) NSString *(^lastUpdatedTimeText)(NSDate *lastUpdatedTime); 15 | /** 显示上一次刷新时间的label */ 16 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 17 | 18 | #pragma mark - 状态相关 19 | /** 文字距离圈圈、箭头的距离 */ 20 | @property (assign, nonatomic) CGFloat labelLeftInset; 21 | /** 显示刷新状态的label */ 22 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 23 | /** 设置state状态下的文字 */ 24 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "下拉可以刷新"; 2 | "MJRefreshHeaderPullingText" = "鬆開立即刷新"; 3 | "MJRefreshHeaderRefreshingText" = "正在刷新數據中..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "點擊或上拉加載更多"; 6 | "MJRefreshAutoFooterRefreshingText" = "正在加載更多的數據..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "已經全部加載完畢"; 8 | 9 | "MJRefreshBackFooterIdleText" = "上拉可以加載更多"; 10 | "MJRefreshBackFooterPullingText" = "鬆開立即加載更多"; 11 | "MJRefreshBackFooterRefreshingText" = "正在加載更多的數據..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "已經全部加載完畢"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "最後更新:"; 15 | "MJRefreshHeaderDateTodayText" = "今天"; 16 | "MJRefreshHeaderNoneLastDateText" = "無記錄"; 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | 4 | #import "UIScrollView+MJRefresh.h" 5 | #import "UIScrollView+MJExtension.h" 6 | #import "UIView+MJExtension.h" 7 | 8 | #import "MJRefreshNormalHeader.h" 9 | #import "MJRefreshGifHeader.h" 10 | 11 | #import "MJRefreshBackNormalFooter.h" 12 | #import "MJRefreshBackGifFooter.h" 13 | #import "MJRefreshAutoNormalFooter.h" 14 | #import "MJRefreshAutoGifFooter.h" -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+MJRefresh.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 16/6/13. 6 | // Copyright © 2016年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSBundle (MJRefresh) 12 | + (instancetype)mj_refreshBundle; 13 | + (UIImage *)mj_arrowImage; 14 | + (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value; 15 | + (NSString *)mj_localizedStringForKey:(NSString *)key; 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIScrollView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_insetT; 14 | @property (assign, nonatomic) CGFloat mj_insetB; 15 | @property (assign, nonatomic) CGFloat mj_insetL; 16 | @property (assign, nonatomic) CGFloat mj_insetR; 17 | 18 | @property (assign, nonatomic) CGFloat mj_offsetX; 19 | @property (assign, nonatomic) CGFloat mj_offsetY; 20 | 21 | @property (assign, nonatomic) CGFloat mj_contentW; 22 | @property (assign, nonatomic) CGFloat mj_contentH; 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+MJRefresh.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 给ScrollView增加下拉刷新、上拉刷新的功能 9 | 10 | #import 11 | #import "MJRefreshConst.h" 12 | 13 | @class MJRefreshHeader, MJRefreshFooter; 14 | 15 | @interface UIScrollView (MJRefresh) 16 | /** 下拉刷新控件 */ 17 | @property (strong, nonatomic) MJRefreshHeader *mj_header; 18 | @property (strong, nonatomic) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); 19 | /** 上拉刷新控件 */ 20 | @property (strong, nonatomic) MJRefreshFooter *mj_footer; 21 | @property (strong, nonatomic) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); 22 | 23 | #pragma mark - other 24 | - (NSInteger)mj_totalDataCount; 25 | @property (copy, nonatomic) void (^mj_reloadDataBlock)(NSInteger totalDataCount); 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_x; 14 | @property (assign, nonatomic) CGFloat mj_y; 15 | @property (assign, nonatomic) CGFloat mj_w; 16 | @property (assign, nonatomic) CGFloat mj_h; 17 | @property (assign, nonatomic) CGSize mj_size; 18 | @property (assign, nonatomic) CGPoint mj_origin; 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - JazzHands (2.0.8) 3 | - Masonry (0.6.4) 4 | - MJRefresh (3.1.12) 5 | - pop (1.0.9) 6 | - Shimmer (1.0.2) 7 | 8 | DEPENDENCIES: 9 | - JazzHands 10 | - Masonry (~> 0.6.1) 11 | - MJRefresh 12 | - pop (~> 1.0) 13 | - Shimmer 14 | 15 | SPEC CHECKSUMS: 16 | JazzHands: 355dc5c2b6fc38ee460d0ed7836c69539263f477 17 | Masonry: 281802d04d787ea2973179ee8bcb50500579ede2 18 | MJRefresh: b96cdb21c4aa75a7b07654311ab2f315c497e806 19 | pop: f667631a5108a2e60d9e8797c9b32ddaf2080bce 20 | Shimmer: c5374be1c2b0c9e292fb05b339a513cf291cac86 21 | 22 | PODFILE CHECKSUM: f5ae00ff270e7b324aac1fd1a7f4f29c847b0198 23 | 24 | COCOAPODS: 1.2.0.beta.1 25 | -------------------------------------------------------------------------------- /Pods/Masonry/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASCompositeConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | #import "MASUtilities.h" 11 | 12 | /** 13 | * A group of MASConstraint objects 14 | */ 15 | @interface MASCompositeConstraint : MASConstraint 16 | 17 | /** 18 | * Creates a composite with a predefined array of children 19 | * 20 | * @param children child MASConstraints 21 | * 22 | * @return a composite constraint 23 | */ 24 | - (id)initWithChildren:(NSArray *)children; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * When you are debugging or printing the constraints attached to a view this subclass 13 | * makes it easier to identify which constraints have been created via Masonry 14 | */ 15 | @interface MASLayoutConstraint : NSLayoutConstraint 16 | 17 | /** 18 | * a key to associate with this constraint 19 | */ 20 | @property (nonatomic, strong) id mas_key; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASLayoutConstraint.h" 10 | 11 | @implementation MASLayoutConstraint 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASAttribute.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * An immutable tuple which stores the view and the related NSLayoutAttribute. 13 | * Describes part of either the left or right hand side of a constraint equation 14 | */ 15 | @interface MASViewAttribute : NSObject 16 | 17 | /** 18 | * The view which the reciever relates to. Can be nil if item is not a view. 19 | */ 20 | @property (nonatomic, weak, readonly) MAS_VIEW *view; 21 | 22 | /** 23 | * The item which the reciever relates to. 24 | */ 25 | @property (nonatomic, weak, readonly) id item; 26 | 27 | /** 28 | * The attribute which the reciever relates to 29 | */ 30 | @property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute; 31 | 32 | /** 33 | * Convenience initializer. 34 | */ 35 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute; 36 | 37 | /** 38 | * The designated initializer. 39 | */ 40 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; 41 | 42 | /** 43 | * Determine whether the layoutAttribute is a size attribute 44 | * 45 | * @return YES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight 46 | */ 47 | - (BOOL)isSizeAttribute; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewAttribute.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASAttribute.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | 11 | @implementation MASViewAttribute 12 | 13 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { 14 | self = [self initWithView:view item:view layoutAttribute:layoutAttribute]; 15 | return self; 16 | } 17 | 18 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { 19 | self = [super init]; 20 | if (!self) return nil; 21 | 22 | _view = view; 23 | _item = item; 24 | _layoutAttribute = layoutAttribute; 25 | 26 | return self; 27 | } 28 | 29 | - (BOOL)isSizeAttribute { 30 | return self.layoutAttribute == NSLayoutAttributeWidth 31 | || self.layoutAttribute == NSLayoutAttributeHeight; 32 | } 33 | 34 | - (BOOL)isEqual:(MASViewAttribute *)viewAttribute { 35 | if ([viewAttribute isKindOfClass:self.class]) { 36 | return self.view == viewAttribute.view 37 | && self.layoutAttribute == viewAttribute.layoutAttribute; 38 | } 39 | return [super isEqual:viewAttribute]; 40 | } 41 | 42 | - (NSUInteger)hash { 43 | return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute; 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | #import "MASConstraint.h" 11 | #import "MASLayoutConstraint.h" 12 | #import "MASUtilities.h" 13 | 14 | /** 15 | * A single constraint. 16 | * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view 17 | */ 18 | @interface MASViewConstraint : MASConstraint 19 | 20 | /** 21 | * First item/view and first attribute of the NSLayoutConstraint 22 | */ 23 | @property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute; 24 | 25 | /** 26 | * Second item/view and second attribute of the NSLayoutConstraint 27 | */ 28 | @property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute; 29 | 30 | /** 31 | * initialises the MASViewConstraint with the first part of the equation 32 | * 33 | * @param firstViewAttribute view.mas_left, view.mas_width etc. 34 | * 35 | * @return a new view constraint 36 | */ 37 | - (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute; 38 | 39 | /** 40 | * Returns all MASViewConstraints installed with this view as a first item. 41 | * 42 | * @param view A view to retrieve constraints for. 43 | * 44 | * @return An array of MASViewConstraints. 45 | */ 46 | + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | // 2 | // Masonry.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Masonry. 12 | FOUNDATION_EXPORT double MasonryVersionNumber; 13 | 14 | //! Project version string for Masonry. 15 | FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; 16 | 17 | #import "MASUtilities.h" 18 | #import "View+MASAdditions.h" 19 | #import "View+MASShorthandAdditions.h" 20 | #import "ViewController+MASAdditions.h" 21 | #import "NSArray+MASAdditions.h" 22 | #import "NSArray+MASShorthandAdditions.h" 23 | #import "MASConstraint.h" 24 | #import "MASCompositeConstraint.h" 25 | #import "MASViewAttribute.h" 26 | #import "MASViewConstraint.h" 27 | #import "MASConstraintMaker.h" 28 | #import "MASLayoutConstraint.h" 29 | #import "NSLayoutConstraint+MASDebugAdditions.h" 30 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+MASShorthandAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 22/07/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "NSArray+MASAdditions.h" 10 | 11 | #ifdef MAS_SHORTHAND 12 | 13 | /** 14 | * Shorthand array additions without the 'mas_' prefixes, 15 | * only enabled if MAS_SHORTHAND is defined 16 | */ 17 | @interface NSArray (MASShorthandAdditions) 18 | 19 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; 20 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; 21 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; 22 | 23 | @end 24 | 25 | @implementation NSArray (MASShorthandAdditions) 26 | 27 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { 28 | return [self mas_makeConstraints:block]; 29 | } 30 | 31 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { 32 | return [self mas_updateConstraints:block]; 33 | } 34 | 35 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { 36 | return [self mas_remakeConstraints:block]; 37 | } 38 | 39 | @end 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+MASDebugAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * makes debug and log output of NSLayoutConstraints more readable 13 | */ 14 | @interface NSLayoutConstraint (MASDebugAdditions) 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.h 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | #ifdef MAS_VIEW_CONTROLLER 14 | 15 | @interface MAS_VIEW_CONTROLLER (MASAdditions) 16 | 17 | /** 18 | * following properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute 19 | */ 20 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide; 21 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide; 22 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop; 23 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom; 24 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop; 25 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom; 26 | 27 | 28 | @end 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.m 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "ViewController+MASAdditions.h" 10 | 11 | #ifdef MAS_VIEW_CONTROLLER 12 | 13 | @implementation MAS_VIEW_CONTROLLER (MASAdditions) 14 | 15 | - (MASViewAttribute *)mas_topLayoutGuide { 16 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 17 | } 18 | - (MASViewAttribute *)mas_topLayoutGuideTop { 19 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 20 | } 21 | - (MASViewAttribute *)mas_topLayoutGuideBottom { 22 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 23 | } 24 | 25 | - (MASViewAttribute *)mas_bottomLayoutGuide { 26 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 27 | } 28 | - (MASViewAttribute *)mas_bottomLayoutGuideTop { 29 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 30 | } 31 | - (MASViewAttribute *)mas_bottomLayoutGuideBottom { 32 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 33 | } 34 | 35 | 36 | 37 | @end 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/Shimmer/FBShimmering/FBShimmeringLayer.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "FBShimmering.h" 13 | 14 | /** 15 | @abstract Lightweight, generic shimmering layer. 16 | */ 17 | @interface FBShimmeringLayer : CALayer 18 | 19 | //! @abstract The content layer to be shimmered. 20 | @property (strong, nonatomic) CALayer *contentLayer; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/Shimmer/FBShimmering/FBShimmeringView.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "FBShimmering.h" 13 | 14 | /** 15 | @abstract Lightweight, generic shimmering view. 16 | */ 17 | @interface FBShimmeringView : UIView 18 | 19 | //! @abstract The content view to be shimmered. 20 | @property (strong, nonatomic) UIView *contentView; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/Shimmer/LICENSE: -------------------------------------------------------------------------------- 1 | BSD License 2 | 3 | For Shimmer software 4 | 5 | Copyright (c) 2014, Facebook, Inc. All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name Facebook nor the names of its contributors may be used to 18 | endorse or promote products derived from this software without specific 19 | prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 28 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JazzHands/JazzHands-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_JazzHands : NSObject 3 | @end 4 | @implementation PodsDummy_JazzHands 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JazzHands/JazzHands-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JazzHands/JazzHands.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/JazzHands 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/JazzHands" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JazzHands" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/pop" 4 | OTHER_LDFLAGS = -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/JazzHands 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJRefresh : NSObject 3 | @end 4 | @implementation PodsDummy_MJRefresh 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/MJRefresh 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JazzHands" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/pop" 4 | PODS_BUILD_DIR = $BUILD_DIR 5 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Masonry : NSObject 3 | @end 4 | @implementation PodsDummy_Masonry 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry/Masonry.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Masonry 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JazzHands" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/pop" 4 | OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Masonry 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-popTest/Pods-popTest-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_popTest : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_popTest 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-popTest/Pods-popTest.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JazzHands" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/pop" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/JazzHands" "$PODS_CONFIGURATION_BUILD_DIR/MJRefresh" "$PODS_CONFIGURATION_BUILD_DIR/Masonry" "$PODS_CONFIGURATION_BUILD_DIR/Shimmer" "$PODS_CONFIGURATION_BUILD_DIR/pop" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/JazzHands" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/Shimmer" -isystem "${PODS_ROOT}/Headers/Public/pop" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"JazzHands" -l"MJRefresh" -l"Masonry" -l"Shimmer" -l"c++" -l"pop" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-popTest/Pods-popTest.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JazzHands" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/pop" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/JazzHands" "$PODS_CONFIGURATION_BUILD_DIR/MJRefresh" "$PODS_CONFIGURATION_BUILD_DIR/Masonry" "$PODS_CONFIGURATION_BUILD_DIR/Shimmer" "$PODS_CONFIGURATION_BUILD_DIR/pop" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/JazzHands" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -isystem "${PODS_ROOT}/Headers/Public/Shimmer" -isystem "${PODS_ROOT}/Headers/Public/pop" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"JazzHands" -l"MJRefresh" -l"Masonry" -l"Shimmer" -l"c++" -l"pop" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Shimmer/Shimmer-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Shimmer : NSObject 3 | @end 4 | @implementation PodsDummy_Shimmer 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Shimmer/Shimmer-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Shimmer/Shimmer.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Shimmer 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Shimmer" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JazzHands" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/pop" 4 | PODS_BUILD_DIR = $BUILD_DIR 5 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Shimmer 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_pop : NSObject 3 | @end 4 | @implementation PodsDummy_pop 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_CXX_LANGUAGE_STANDARD = c++11 2 | CLANG_CXX_LIBRARY = libc++ 3 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/pop 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/pop" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/JazzHands" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Masonry" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/pop" 6 | OTHER_LDFLAGS = -l"c++" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/pop 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | -------------------------------------------------------------------------------- /Pods/pop/LICENSE: -------------------------------------------------------------------------------- 1 | BSD License 2 | 3 | For Pop software 4 | 5 | Copyright (c) 2014, Facebook, Inc. All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name Facebook nor the names of its contributors may be used to 18 | endorse or promote products derived from this software without specific 19 | prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 28 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /Pods/pop/pop/POP.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POP_POP_H 11 | #define POP_POP_H 12 | 13 | #import 14 | 15 | #import 16 | #import 17 | #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | 29 | #endif /* POP_POP_H */ 30 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAction.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POPACTION_H 11 | #define POPACTION_H 12 | 13 | #import 14 | 15 | #import 16 | 17 | #ifdef __cplusplus 18 | 19 | namespace POP { 20 | 21 | /** 22 | @abstract Disables Core Animation actions using RAII. 23 | @discussion The disablement of actions is scoped to the current transaction. 24 | */ 25 | class ActionDisabler 26 | { 27 | BOOL state; 28 | 29 | public: 30 | ActionDisabler() POP_NOTHROW 31 | { 32 | state = [CATransaction disableActions]; 33 | [CATransaction setDisableActions:YES]; 34 | } 35 | 36 | ~ActionDisabler() 37 | { 38 | [CATransaction setDisableActions:state]; 39 | } 40 | }; 41 | 42 | /** 43 | @abstract Enables Core Animation actions using RAII. 44 | @discussion The enablement of actions is scoped to the current transaction. 45 | */ 46 | class ActionEnabler 47 | { 48 | BOOL state; 49 | 50 | public: 51 | ActionEnabler() POP_NOTHROW 52 | { 53 | state = [CATransaction disableActions]; 54 | [CATransaction setDisableActions:NO]; 55 | } 56 | 57 | ~ActionEnabler() 58 | { 59 | [CATransaction setDisableActions:state]; 60 | } 61 | }; 62 | 63 | } 64 | 65 | #endif /* __cplusplus */ 66 | 67 | #endif /* POPACTION_H */ 68 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationEventInternal.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "POPAnimationEvent.h" 13 | 14 | @interface POPAnimationEvent () 15 | 16 | /** 17 | @abstract Default initializer. 18 | */ 19 | - (instancetype)initWithType:(POPAnimationEventType)type time:(CFTimeInterval)time; 20 | 21 | /** 22 | @abstract Readwrite redefinition of public property. 23 | */ 24 | @property (readwrite, nonatomic, copy) NSString *animationDescription; 25 | 26 | @end 27 | 28 | @interface POPAnimationValueEvent () 29 | 30 | /** 31 | @abstract Default initializer. 32 | */ 33 | - (instancetype)initWithType:(POPAnimationEventType)type time:(CFTimeInterval)time value:(id)value; 34 | 35 | /** 36 | @abstract Readwrite redefinition of public property. 37 | */ 38 | @property (readwrite, nonatomic, strong) id velocity; 39 | 40 | @end 41 | 42 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import 13 | #import 14 | 15 | /** 16 | @abstract The current drag coefficient. 17 | @discussion A value greater than 1.0 indicates Simulator slow-motion animations are enabled. Defaults to 1.0. 18 | */ 19 | extern CGFloat POPAnimationDragCoefficient(); 20 | 21 | @interface CAAnimation (POPAnimationExtras) 22 | 23 | /** 24 | @abstract Apply the current drag coefficient to animation speed. 25 | @discussion Convenience utility to respect Simulator slow-motion animation settings. 26 | */ 27 | - (void)pop_applyDragCoefficient; 28 | 29 | @end 30 | 31 | @interface POPSpringAnimation (POPAnimationExtras) 32 | 33 | /** 34 | @abstract Converts from spring bounciness and speed to tension, friction and mass dynamics values. 35 | */ 36 | + (void)convertBounciness:(CGFloat)bounciness speed:(CGFloat)speed toTension:(CGFloat *)outTension friction:(CGFloat *)outFriction mass:(CGFloat *)outMass; 37 | 38 | /** 39 | @abstract Converts from dynamics tension, friction and mass to spring bounciness and speed values. 40 | */ 41 | + (void)convertTension:(CGFloat)tension friction:(CGFloat)friction toBounciness:(CGFloat *)outBounciness speed:(CGFloat *)outSpeed; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #define POP_ANIMATION_FRICTION_FOR_QC_FRICTION(qcFriction) (25.0 + (((qcFriction - 8.0) / 2.0) * (25.0 - 19.0))) 13 | #define POP_ANIMATION_TENSION_FOR_QC_TENSION(qcTension) (194.0 + (((qcTension - 30.0) / 50.0) * (375.0 - 194.0))) 14 | 15 | #define QC_FRICTION_FOR_POP_ANIMATION_FRICTION(fbFriction) (8.0 + 2.0 * ((fbFriction - 25.0)/(25.0 - 19.0))) 16 | #define QC_TENSION_FOR_POP_ANIMATION_TENSION(fbTension) (30.0 + 50.0 * ((fbTension - 194.0)/(375.0 - 194.0))) 17 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimator.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @protocol POPAnimatorDelegate; 13 | 14 | /** 15 | @abstract The animator class renders animations. 16 | */ 17 | @interface POPAnimator : NSObject 18 | 19 | /** 20 | @abstract The shared animator instance. 21 | @discussion Consumers should generally use the shared instance in lieu of creating new instances. 22 | */ 23 | + (instancetype)sharedAnimator; 24 | 25 | /** 26 | @abstract The optional animator delegate. 27 | */ 28 | @property (weak, nonatomic) id delegate; 29 | 30 | @end 31 | 32 | /** 33 | @abstract The animator delegate. 34 | */ 35 | @protocol POPAnimatorDelegate 36 | 37 | /** 38 | @abstract Called on each frame before animation application. 39 | */ 40 | - (void)animatorWillAnimate:(POPAnimator *)animator; 41 | 42 | /** 43 | @abstract Called on each frame after animation application. 44 | */ 45 | - (void)animatorDidAnimate:(POPAnimator *)animator; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POP_POPDefines_h 11 | #define POP_POPDefines_h 12 | 13 | #import 14 | 15 | #ifdef __cplusplus 16 | # define POP_EXTERN_C_BEGIN extern "C" { 17 | # define POP_EXTERN_C_END } 18 | #else 19 | # define POP_EXTERN_C_BEGIN 20 | # define POP_EXTERN_C_END 21 | #endif 22 | 23 | #define POP_ARRAY_COUNT(x) sizeof(x) / sizeof(x[0]) 24 | 25 | #if defined (__cplusplus) && defined (__GNUC__) 26 | # define POP_NOTHROW __attribute__ ((nothrow)) 27 | #else 28 | # define POP_NOTHROW 29 | #endif 30 | 31 | #if TARGET_OS_MAC 32 | #define SCENEKIT_SDK_AVAILABLE defined(POP_USE_SCENEKIT) 33 | #elif TARGET_OS_IPHONE 34 | #define SCENEKIT_SDK_AVAILABLE defined(POP_USE_SCENEKIT) 35 | #endif 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /popTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /popTest.xcodeproj/xcuserdata/wujunyang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | popTest.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 348CC9CC1C6F7A9F005DC8FE 16 | 17 | primary 18 | 19 | 20 | 348CC9E51C6F7A9F005DC8FE 21 | 22 | primary 23 | 24 | 25 | 348CC9F01C6F7A9F005DC8FE 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /popTest.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /popTest.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /popTest/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/13. 6 | // Copyright © 2016年 wujunyang. 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 | -------------------------------------------------------------------------------- /popTest/Assets.xcassets/001.imageset/001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/001.imageset/001.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/001.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "001.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 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/002.imageset/002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/002.imageset/002.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/002.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "002.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 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/01.imageset/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/01.imageset/01.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/01.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "01.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 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/02.imageset/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/02.imageset/02.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/02.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "02.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 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/1.imageset/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/1.imageset/1.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "1.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 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/2.imageset/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/2.imageset/2.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "2.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 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/3.imageset/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/3.imageset/3.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "3.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 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x-1.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Close_icn.imageset/Close_icn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/Close_icn.imageset/Close_icn.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Close_icn.imageset/Close_icn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/Close_icn.imageset/Close_icn@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Close_icn.imageset/Close_icn@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/Close_icn.imageset/Close_icn@3x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Close_icn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Close_icn.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Close_icn@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Close_icn@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Menu_icn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Menu_icn.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Menu_icn@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Menu_icn@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Menu_icn.imageset/Menu_icn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/Menu_icn.imageset/Menu_icn.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Menu_icn.imageset/Menu_icn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/Menu_icn.imageset/Menu_icn@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/Menu_icn.imageset/Menu_icn@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/Menu_icn.imageset/Menu_icn@3x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/TimerButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "TimerButton.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/TimerButton.imageset/TimerButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/TimerButton.imageset/TimerButton.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/TimerPopOut.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "TimerPopOut@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 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/TimerPopOut.imageset/TimerPopOut@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/TimerPopOut.imageset/TimerPopOut@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/blue.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "blue@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "blue@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/blue.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/blue.imageset/blue@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/blue.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/blue.imageset/blue@3x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/bull_head_gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "pull_refresh_arrow@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/bull_head_gray.imageset/pull_refresh_arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/bull_head_gray.imageset/pull_refresh_arrow@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/bull_head_green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "pull_refresh_arrow_highlight@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/bull_head_green.imageset/pull_refresh_arrow_highlight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/bull_head_green.imageset/pull_refresh_arrow_highlight@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/du.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "du@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "du@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/du.imageset/du@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/du.imageset/du@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/du.imageset/du@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/du.imageset/du@3x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "gray@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "gray@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/gray.imageset/gray@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/gray.imageset/gray@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/gray.imageset/gray@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/gray.imageset/gray@3x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/loading_indicator.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "loading_indicator@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/loading_indicator.imageset/loading_indicator@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/loading_indicator.imageset/loading_indicator@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/loading_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "loading_logo@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/loading_logo.imageset/loading_logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/loading_logo.imageset/loading_logo@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/priase_dafault.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "赞icon@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "赞icon@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/priase_dafault.imageset/赞icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/priase_dafault.imageset/赞icon@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/priase_dafault.imageset/赞icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/priase_dafault.imageset/赞icon@3x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/priase_select.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "赞icon-点击态@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "赞icon-点击态@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /popTest/Assets.xcassets/priase_select.imageset/赞icon-点击态@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/priase_select.imageset/赞icon-点击态@2x.png -------------------------------------------------------------------------------- /popTest/Assets.xcassets/priase_select.imageset/赞icon-点击态@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/Assets.xcassets/priase_select.imageset/赞icon-点击态@3x.png -------------------------------------------------------------------------------- /popTest/BezierPathViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BezierPathViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/21. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BezierPathViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/CAEmitterLayerViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // CAEmitterLayerViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/24. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CAEmitterLayerViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/CAEmitterLayerViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // CAEmitterLayerViewController.m 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/24. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import "CAEmitterLayerViewController.h" 10 | #import "WclEmitterButton.h" 11 | 12 | 13 | @interface CAEmitterLayerViewController () 14 | @property(nonatomic,strong)WclEmitterButton *myButton; 15 | @end 16 | 17 | @implementation CAEmitterLayerViewController 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | self.view.backgroundColor=[UIColor whiteColor]; 22 | 23 | if (self.myButton==nil) { 24 | self.myButton=[[WclEmitterButton alloc]initWithFrame:CGRectMake(100, 150, 15, 15)]; 25 | [self.myButton setImage:[UIImage imageNamed:@"priase_dafault"] forState:UIControlStateNormal]; 26 | [self.myButton setImage:[UIImage imageNamed:@"priase_select"] forState:UIControlStateSelected]; 27 | [self.myButton addTarget:self action:@selector(wclButtonAction:) forControlEvents:UIControlEventTouchUpInside]; 28 | [self.view addSubview:self.myButton]; 29 | } 30 | } 31 | 32 | - (void)wclButtonAction:(UIButton *)sender { 33 | sender.selected = !sender.selected; 34 | } 35 | 36 | - (void)didReceiveMemoryWarning { 37 | [super didReceiveMemoryWarning]; 38 | // Dispose of any resources that can be recreated. 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /popTest/CoreAnimationViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // CoreAnimationViewController.h 3 | // popTest 普通动画效果 4 | // 5 | // Created by wujunyang on 16/2/19. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface CoreAnimationViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/DecayViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DecayViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/16. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DecayViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/DemoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DemoViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/18. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DemoViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/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 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /popTest/MPImageViewViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPImageViewViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/12. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPImageViewViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/MPPopViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPPopViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/7. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPPopViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/MPPopViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MPPopViewController.m 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/7. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import "MPPopViewController.h" 10 | 11 | @interface MPPopViewController () 12 | 13 | @end 14 | 15 | @implementation MPPopViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | self.view.backgroundColor = [UIColor colorWithRed:189/255.0 green:79/255.0 blue:70/255.0 alpha:1]; 20 | 21 | UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; 22 | [button setImage:[UIImage imageNamed:@"Close_icn"] forState:UIControlStateNormal]; 23 | button.center = CGPointMake(CGRectGetMidX(self.view.frame), CGRectGetMaxY(self.view.frame) - 60); 24 | [button setBackgroundColor:[UIColor whiteColor]]; 25 | button.layer.cornerRadius = button.bounds.size.width/2.0f; 26 | [button addTarget:self action:@selector(popMethod) forControlEvents:UIControlEventTouchUpInside]; 27 | [self.view addSubview:button]; 28 | } 29 | 30 | -(void)popMethod{ 31 | [self.navigationController popViewControllerAnimated:true]; 32 | } 33 | 34 | - (void)didReceiveMemoryWarning { 35 | [super didReceiveMemoryWarning]; 36 | // Dispose of any resources that can be recreated. 37 | } 38 | 39 | /* 40 | #pragma mark - Navigation 41 | 42 | // In a storyboard-based application, you will often want to do a little preparation before navigation 43 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 44 | // Get the new view controller using [segue destinationViewController]. 45 | // Pass the selected object to the new view controller. 46 | } 47 | */ 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /popTest/MPProgressViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPProgressViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/7. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "XLPaymentLoadingHUD.h" 11 | #import "XLPaymentSuccessHUD.h" 12 | 13 | @interface MPProgressViewController : UIViewController 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /popTest/MPProgressViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MPProgressViewController.m 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/7. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import "MPProgressViewController.h" 10 | 11 | @interface MPProgressViewController () 12 | 13 | @property(nonatomic,strong)UIView *topView,*bottomView; 14 | 15 | @end 16 | 17 | @implementation MPProgressViewController 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | 22 | self.view.backgroundColor=[UIColor whiteColor]; 23 | 24 | _topView=[[UIView alloc]initWithFrame:CGRectMake(0, 100, 200, 100)]; 25 | [self.view addSubview:_topView]; 26 | 27 | [XLPaymentLoadingHUD showIn:_topView]; 28 | 29 | _bottomView=[[UIView alloc]initWithFrame:CGRectMake(0, 220, 200, 100)]; 30 | [self.view addSubview:_bottomView]; 31 | 32 | [XLPaymentSuccessHUD showIn:_bottomView]; 33 | 34 | } 35 | 36 | - (void)didReceiveMemoryWarning { 37 | [super didReceiveMemoryWarning]; 38 | // Dispose of any resources that can be recreated. 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /popTest/MPPushViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPPushViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/7. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "XLBubbleTransition.h" 11 | #import "MPPopViewController.h" 12 | 13 | @interface MPPushViewController : UIViewController 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /popTest/MPPushViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MPPushViewController.m 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/7. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import "MPPushViewController.h" 10 | 11 | @interface MPPushViewController () 12 | 13 | @end 14 | 15 | @implementation MPPushViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | self.view.backgroundColor = [UIColor whiteColor]; 21 | 22 | UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; 23 | button.center = CGPointMake(CGRectGetMidX(self.view.frame), CGRectGetMaxY(self.view.frame) - 60); 24 | button.layer.cornerRadius = 25.0f; 25 | button.backgroundColor = [UIColor colorWithRed:189/255.0 green:79/255.0 blue:70/255.0 alpha:1]; 26 | [button addTarget:self action:@selector(pushMethod) forControlEvents:UIControlEventTouchUpInside]; 27 | [button setImage:[UIImage imageNamed:@"Menu_icn"] forState:UIControlStateNormal]; 28 | [self.view addSubview:button]; 29 | 30 | self.xl_pushTranstion = [XLBubblePushTransition transitionWithAnchorRect:button.frame]; 31 | self.xl_popTranstion = [XLBubblePopTransition transitionWithAnchorRect:button.frame]; 32 | } 33 | 34 | -(void)pushMethod{ 35 | MPPopViewController *vc = [[MPPopViewController alloc] init]; 36 | [self.navigationController pushViewController:vc animated:true]; 37 | } 38 | 39 | - (void)didReceiveMemoryWarning { 40 | [super didReceiveMemoryWarning]; 41 | // Dispose of any resources that can be recreated. 42 | } 43 | 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /popTest/MPScaleViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPScaleViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/6. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPScaleViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/MPTelescopicViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPTelescopicViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/5. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "HYYBubbleButton.h" 11 | 12 | @interface MPTelescopicViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/MPUIBezierPathViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPUIBezierPathViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/5. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "RYCuteView.h" 11 | 12 | @interface MPUIBezierPathViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/MPUIBezierPathViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MPUIBezierPathViewController.m 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/5. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import "MPUIBezierPathViewController.h" 10 | 11 | @interface MPUIBezierPathViewController () 12 | 13 | @end 14 | 15 | @implementation MPUIBezierPathViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | 20 | self.view.backgroundColor=[UIColor whiteColor]; 21 | 22 | RYCuteView *cuteView = [[RYCuteView alloc] initWithFrame:CGRectMake(0, 64, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height)]; 23 | cuteView.backgroundColor = [UIColor whiteColor]; 24 | [self.view addSubview:cuteView]; 25 | } 26 | 27 | - (void)didReceiveMemoryWarning { 28 | [super didReceiveMemoryWarning]; 29 | // Dispose of any resources that can be recreated. 30 | } 31 | 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /popTest/OtherViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // OtherViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/15. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface OtherViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/POPBasicAnimationViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // POPBasicAnimationViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/15. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface POPBasicAnimationViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/POPCALayerMaskViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // POPCALayerMaskViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/17. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "TNActivityIndicator.h" 11 | 12 | @interface POPCALayerMaskViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/POPDecayAnimationViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // POPDecayAnimationViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/16. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface POPDecayAnimationViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/POPProgressBarViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // POPProgressBarViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/21. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface POPProgressBarViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/POPProgressViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // POPProgressViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/21. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BLEProgressView.h" 11 | 12 | @interface POPProgressViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/POPSpringAnimationViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // POPSpringAnimationViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/15. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface POPSpringAnimationViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /popTest/POPTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // POPTableViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/2/4. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PopBackTopViewController.h" 11 | #import 12 | 13 | #import "POPBasicAnimationViewController.h" 14 | #import "POPSpringAnimationViewController.h" 15 | #import "POPDecayAnimationViewController.h" 16 | #import "OtherViewController.h" 17 | #import "DecayViewController.h" 18 | 19 | #import "DemoViewController.h" 20 | 21 | #import "CoreAnimationViewController.h" 22 | #import "BezierPathViewController.h" 23 | #import "MPUIBezierPathViewController.h" 24 | #import "MPTelescopicViewController.h" 25 | #import "MPDownloadViewController.h" 26 | #import "MPScaleViewController.h" 27 | #import "MPProgressViewController.h" 28 | #import "MPPushViewController.h" 29 | #import "MPImageViewViewController.h" 30 | #import "POPCALayerMaskViewController.h" 31 | #import "POPProgressBarViewController.h" 32 | #import "POPProgressViewController.h" 33 | #import "CAEmitterLayerViewController.h" 34 | #import "WaterWaveViewController.h" 35 | #import "ReplicatorLayerViewController.h" 36 | 37 | @interface POPTableViewController : UIViewController 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /popTest/ReplicatorLayerViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ReplicatorLayerViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/5/19. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ReplicatorLayerViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/13. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | #import "POPBasicAnimationViewController.h" 13 | #import "POPSpringAnimationViewController.h" 14 | #import "POPDecayAnimationViewController.h" 15 | #import "OtherViewController.h" 16 | #import "DecayViewController.h" 17 | 18 | #import "DemoViewController.h" 19 | 20 | #import "CoreAnimationViewController.h" 21 | #import "BezierPathViewController.h" 22 | 23 | #import "POPTableViewController.h" 24 | 25 | @interface ViewController : UIViewController 26 | - (IBAction)PopBasicAction:(id)sender; 27 | - (IBAction)spingAction:(id)sender; 28 | 29 | - (IBAction)OtherAction:(id)sender; 30 | - (IBAction)decayAction:(id)sender; 31 | - (IBAction)decayDemoAction:(id)sender; 32 | 33 | @property (weak, nonatomic) IBOutlet UIButton *demoActions; 34 | - (IBAction)demosAction:(id)sender; 35 | - (IBAction)coreAction:(id)sender; 36 | - (IBAction)BezirPathAction:(id)sender; 37 | - (IBAction)DemoTable:(id)sender; 38 | 39 | @end 40 | 41 | -------------------------------------------------------------------------------- /popTest/WaterWaveViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // WaterWaveViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/26. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WaterWaveViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/WaterWaveViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // WaterWaveViewController.m 3 | // popTest https://github.com/liangwei518/WaterWave 4 | // 5 | // Created by wujunyang on 2017/4/26. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import "WaterWaveViewController.h" 10 | #import "YDWaveLoadingView.h" 11 | 12 | @interface WaterWaveViewController () 13 | 14 | @property (nonatomic, strong) UIImageView *backImageView; 15 | @property (nonatomic, strong) YDWaveLoadingView *loadingView; 16 | 17 | @end 18 | 19 | @implementation WaterWaveViewController 20 | 21 | - (void)viewDidLoad { 22 | [super viewDidLoad]; 23 | self.view.backgroundColor = [UIColor whiteColor]; 24 | _loadingView = [YDWaveLoadingView loadingView]; 25 | [self.view addSubview:_loadingView]; 26 | _loadingView.center = self.view.center; 27 | 28 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 29 | [_loadingView startLoading]; 30 | }); 31 | } 32 | 33 | - (void)beginLoading:(id)sender 34 | { 35 | [_loadingView startLoading]; 36 | } 37 | 38 | - (void)didReceiveMemoryWarning { 39 | [super didReceiveMemoryWarning]; 40 | // Dispose of any resources that can be recreated. 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /popTest/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // popTest 4 | // 5 | // Created by wujunyang on 16/2/13. 6 | // Copyright © 2016年 wujunyang. 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 | -------------------------------------------------------------------------------- /popTest/popDemo/MPDownloadViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MPDownloadViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/6. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MPDownloadViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/popDemo/MPDownloadViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MPDownloadViewController.m 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/4/6. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import "MPDownloadViewController.h" 10 | #import "YQDownloadButton.h" 11 | 12 | @interface MPDownloadViewController () 13 | 14 | @end 15 | 16 | @implementation MPDownloadViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | // Do any additional setup after loading the view. 21 | 22 | self.view.backgroundColor=[UIColor whiteColor]; 23 | 24 | YQDownloadButton *button = [[YQDownloadButton alloc] initWithFrame:CGRectMake(0, 0, 160, 160)]; 25 | button.center = self.view.center; 26 | [self.view addSubview:button]; 27 | } 28 | 29 | - (void)didReceiveMemoryWarning { 30 | [super didReceiveMemoryWarning]; 31 | // Dispose of any resources that can be recreated. 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /popTest/popDemo/VC/PopBackTopViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PopBackTopViewController.h 3 | // popTest 4 | // 5 | // Created by wujunyang on 2017/2/4. 6 | // Copyright © 2017年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | 14 | @interface PopBackTopViewController : UIViewController 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /popTest/popDemo/View/BLEProgressView/BLEProgressBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // BLEProgressBar.h 3 | // BLEProgressView 4 | // 5 | // Created by blueeee on 15-8-12. 6 | // Copyright (c) 2015年 blueeee. All rights reserved. 7 | // 8 | 9 | #import "BLEProgressBaseView.h" 10 | @interface BLEProgressBar : BLEProgressBaseView 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /popTest/popDemo/View/BLEProgressView/BLEProgressBaseView.h: -------------------------------------------------------------------------------- 1 | // 2 | // BLEProgressBaseView.h 3 | // BLEProgressView 4 | // 5 | // Created by blueeee on 15-8-13. 6 | // Copyright (c) 2015年 blueeee. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | @protocol BLEProgressBaseViewDelegate; 12 | 13 | @interface BLEProgressBaseView:UIView 14 | 15 | typedef enum BLEProgressState{ 16 | //初始 17 | BLEProgressStateOringin = 0, 18 | //进度条生成 19 | BLEProgressStateReady, 20 | //进度条执行 21 | BLEProgressStateRunning, 22 | //完成即100% 23 | BLEProgressStateSuccess, 24 | //失败动画中 25 | BLEProgressStatefailAnim, 26 | //失败 27 | BLEProgressStatefailed, 28 | //恢复到初始状态 29 | BLEProgressStateResume 30 | } ProgressState; 31 | 32 | @property (nonatomic, assign) ProgressState progressState; 33 | @property (nonatomic, assign) CGFloat currentProgress; 34 | @property (nonatomic, weak) id delegate; 35 | 36 | - (instancetype)initWithFrame:(CGRect)frame delegate:(id)delegate; 37 | 38 | -(void)originate; 39 | -(void)start; 40 | -(void)run; 41 | -(void)fail; 42 | -(void)resume; 43 | 44 | -(void)generateOriginalStyle; 45 | -(void)generateReadyStyle; 46 | -(void)generateRunningStyle; 47 | -(void)generateFailStyle; 48 | -(void)generateResumeStyle; 49 | 50 | -(void)setProgress:(CGFloat)progress; 51 | 52 | @end 53 | @protocol BLEProgressBaseViewDelegate 54 | @optional 55 | -(void)progressView :(BLEProgressBaseView*)progressView changedState:(ProgressState)state; 56 | 57 | @end -------------------------------------------------------------------------------- /popTest/popDemo/View/BLEProgressView/BLEProgressIndicator.h: -------------------------------------------------------------------------------- 1 | // 2 | // BLEProgressIndicator.h 3 | // BLEProgressView 4 | // 5 | // Created by blueeee on 15-8-12. 6 | // Copyright (c) 2015年 blueeee. All rights reserved. 7 | // 8 | 9 | #import "BLEProgressBaseView.h" 10 | @interface BLEProgressIndicator : BLEProgressBaseView 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /popTest/popDemo/View/BLEProgressView/BLEProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // BLEProgressView.h 3 | // BLEProgressView 4 | // 5 | // Created by blueeee on 15-8-12. 6 | // Copyright (c) 2015年 blueeee. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BLEProgressBar.h" 11 | #import "BLEProgressIndicator.h" 12 | @class BLEProgressView; 13 | @protocol BLEProgressViewDelegate 14 | @optional 15 | -(void)progressView :(BLEProgressView*)progressView didChangedState:(ProgressState)state; 16 | 17 | @end 18 | @interface BLEProgressView : UIView 19 | 20 | @property (nonatomic ,weak) id delegate; 21 | 22 | - (instancetype)initWithFrame:(CGRect)frame; 23 | 24 | -(void)start; 25 | -(void)fail; 26 | -(void)resume; 27 | -(void)setProgess:(CGFloat)progress; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /popTest/popDemo/View/LoadingView/YDWaveLoadingView.h: -------------------------------------------------------------------------------- 1 | // 2 | // YDWaveLoadingView.h 3 | // WaterWave 4 | // 5 | // Created by liangwei on 16/7/8. 6 | // Copyright © 2016年 liangwei. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | @interface YDWaveLoadingView : UIView 13 | 14 | + (instancetype)loadingView; 15 | 16 | - (void)startLoading; 17 | 18 | - (void)stopLoading; 19 | 20 | @end 21 | NS_ASSUME_NONNULL_END -------------------------------------------------------------------------------- /popTest/popDemo/View/RYCuteView.h: -------------------------------------------------------------------------------- 1 | // 2 | // shapeView.h 3 | // testUIBezierPath 4 | // 5 | // Created by billionsfinance-resory on 15/11/2. 6 | // Copyright © 2015年 Resory. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RYCuteView : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/popDemo/View/TNActivityIndicator.h: -------------------------------------------------------------------------------- 1 | // 2 | // TNActivityIndicator.h 3 | // TuNiuApp 4 | // 5 | // Created by Ben on 14/11/3. 6 | // Copyright (c) 2014年 Tuniu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TNActivityIndicator : UIView 12 | 13 | @property (nonatomic, assign) BOOL hidesWhenStopped; 14 | 15 | - (void)startAnimating; 16 | 17 | - (void)stopAnimating; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /popTest/popDemo/View/WclEmitterButton/Sparkle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wujunyang/facebookPopTest/f56e1e8d1f95444b893942f07ef43790b648220e/popTest/popDemo/View/WclEmitterButton/Sparkle.png -------------------------------------------------------------------------------- /popTest/popDemo/View/WclEmitterButton/WclEmitterButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // WclEmitterButton.h 3 | // WclEmitterButton 4 | // 5 | // Created by 王崇磊 on 16/4/26. 6 | // Copyright © 2016年 王崇磊. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WclEmitterButton : UIButton 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /popTest/popDemo/View/XLBubbleTransition/UIViewController+XLBubbleTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+XLBubbleTransition.h 3 | // XLBubbleTransitionDemo 4 | // 5 | // Created by MengXianLiang on 2017/4/1. 6 | // Copyright © 2017年 MengXianLiang. All rights reserved. 7 | // GitHub :https://github.com/mengxianliang/XLBubbleTransition 8 | 9 | #import 10 | 11 | @class XLBubblePushTransition; 12 | @class XLBubblePopTransition; 13 | 14 | @interface UIViewController (XLBubbleTransition) 15 | 16 | @property (nonatomic, retain) XLBubblePushTransition *xl_pushTranstion; 17 | 18 | @property (nonatomic, retain) XLBubblePopTransition *xl_popTranstion; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /popTest/popDemo/View/XLBubbleTransition/XLBubblePopTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // XLBubblePopTransition.h 3 | // XLBubbleTransitionDemo 4 | // 5 | // Created by MengXianLiang on 2017/4/1. 6 | // Copyright © 2017年 MengXianLiang. All rights reserved. 7 | // GitHub :https://github.com/mengxianliang/XLBubbleTransition 8 | 9 | #import 10 | #import 11 | 12 | @interface XLBubblePopTransition : NSObject 13 | 14 | -(instancetype)initWithAnchorRect:(CGRect)rect; 15 | +(instancetype)transitionWithAnchorRect:(CGRect)rect; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /popTest/popDemo/View/XLBubbleTransition/XLBubblePushTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // XLBubblePushTransition.h 3 | // XLBubbleTransitionDemo 4 | // 5 | // Created by MengXianLiang on 2017/4/1. 6 | // Copyright © 2017年 MengXianLiang. All rights reserved. 7 | // GitHub :https://github.com/mengxianliang/XLBubbleTransition 8 | 9 | #import 10 | #import 11 | 12 | @interface XLBubblePushTransition : NSObject 13 | 14 | -(instancetype)initWithAnchorRect:(CGRect)rect; 15 | +(instancetype)transitionWithAnchorRect:(CGRect)rect; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /popTest/popDemo/View/XLBubbleTransition/XLBubbleTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // XLBubbleTransition.h 3 | // XLBubbleTransitionDemo 4 | // 5 | // Created by MengXianLiang on 2017/4/1. 6 | // Copyright © 2017年 MengXianLiang. All rights reserved. 7 | // GitHub :https://github.com/mengxianliang/XLBubbleTransition 8 | 9 | #ifndef XLBubbleTransition_h 10 | #define XLBubbleTransition_h 11 | 12 | #import "UIViewController+XLBubbleTransition.h" 13 | #import "XLBubblePopTransition.h" 14 | #import "XLBubblePushTransition.h" 15 | 16 | #endif /* XLBubbleTransition_h */ 17 | -------------------------------------------------------------------------------- /popTest/popDemo/View/XLPaymentHUD/XLPaymentLoadingHUD.h: -------------------------------------------------------------------------------- 1 | // 2 | // XLPaymentLoadingHUD.h 3 | // XLPaymentHUDExample 4 | // 5 | // Created by MengXianLiang on 2017/4/6. 6 | // Copyright © 2017年 MengXianLiang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface XLPaymentLoadingHUD : UIView 12 | 13 | -(void)start; 14 | 15 | -(void)hide; 16 | 17 | +(XLPaymentLoadingHUD*)showIn:(UIView*)view; 18 | 19 | +(XLPaymentLoadingHUD*)hideIn:(UIView*)view; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /popTest/popDemo/View/XLPaymentHUD/XLPaymentSuccessHUD.h: -------------------------------------------------------------------------------- 1 | // 2 | // XLPaymentSuccessHUD.h 3 | // XLPaymentHUDExample 4 | // 5 | // Created by MengXianLiang on 2017/4/6. 6 | // Copyright © 2017年 MengXianLiang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface XLPaymentSuccessHUD : UIView 12 | 13 | -(void)start; 14 | 15 | -(void)hide; 16 | 17 | +(XLPaymentSuccessHUD*)showIn:(UIView*)view; 18 | 19 | +(XLPaymentSuccessHUD*)hideIn:(UIView*)view; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /popTest/popDemo/View/YQDownloadButton/UIView+YQBorderPath.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+YQBorderPath.h 3 | // YQDownloadButton 4 | // 5 | // Created by yingqiu huang on 2017/2/7. 6 | // Copyright © 2017年 yingqiu huang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (YQBorderPath) 12 | 13 | ///圆形区域的path 14 | + (UIBezierPath *)circlePathRect:(CGRect)rect 15 | lineWidth:(CGFloat)width; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /popTest/popDemo/View/YQDownloadButton/UIView+YQBorderPath.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+YQBorderPath.m 3 | // YQDownloadButton 4 | // 5 | // Created by yingqiu huang on 2017/2/7. 6 | // Copyright © 2017年 yingqiu huang. All rights reserved. 7 | // 8 | 9 | #import "UIView+YQBorderPath.h" 10 | 11 | @implementation UIView (YQBorderPath) 12 | 13 | ///圆形区域的path 14 | + (UIBezierPath *)circlePathRect:(CGRect)rect 15 | lineWidth:(CGFloat)width { 16 | //没有直接使用rect防止传入的是frame而不是试图的bounds 17 | UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, rect.size.width, rect.size.height)]; 18 | [path setLineWidth:width]; 19 | 20 | return path; 21 | } 22 | @end 23 | -------------------------------------------------------------------------------- /popTest/popDemo/View/YQDownloadButton/YQDownloadButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // YQDownloadButton.h 3 | // YQDownloadButton 4 | // 5 | // Created by yingqiu huang on 2017/2/7. 6 | // Copyright © 2017年 yingqiu huang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface YQDownloadButton : UIView 12 | //边界path,水波的容器 13 | @property (nonatomic, strong) UIBezierPath *borderPath; 14 | //容器填充色 15 | @property (nonatomic, strong) UIColor *border_fillColor; 16 | //容器描边色 17 | @property (nonatomic, strong) UIColor *border_strokeColor; 18 | //前方波纹颜色 19 | @property (nonatomic, strong) UIColor *topColor; 20 | //后方波纹颜色 21 | @property (nonatomic, strong) UIColor *bottomColor; 22 | //y = asin(wx+φ) + k 23 | //进度,计算k 24 | @property (nonatomic, assign) CGFloat progress; 25 | //振幅,a 26 | @property (nonatomic, assign) CGFloat wave_Amplitude; 27 | //周期,w 28 | @property (nonatomic, assign) CGFloat wave_Cycle; 29 | //两个波水平之间偏移 30 | @property (nonatomic, assign) CGFloat wave_h_distance; 31 | //两个波竖直之间偏移 32 | @property (nonatomic, assign) CGFloat wave_v_distance; 33 | //水波速率 34 | @property (nonatomic, assign) CGFloat wave_scale; 35 | - (void)startDownload; 36 | @end 37 | -------------------------------------------------------------------------------- /popTest/popDemo/View/YQDownloadButton/YQStartButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // YQStartButton.h 3 | // YQDownloadButton 4 | // 5 | // Created by yingqiu huang on 2017/2/7. 6 | // Copyright © 2017年 yingqiu huang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol StartButtonDelegate 12 | 13 | - (void)startDownload; 14 | 15 | @end 16 | 17 | @interface YQStartButton : UIButton 18 | 19 | /*代理属性*/ 20 | @property (nonatomic,weak) id delegate; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /popTestTests/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 | -------------------------------------------------------------------------------- /popTestTests/popTestTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // popTestTests.m 3 | // popTestTests 4 | // 5 | // Created by wujunyang on 16/2/13. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface popTestTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation popTestTests 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 | -------------------------------------------------------------------------------- /popTestUITests/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 | -------------------------------------------------------------------------------- /popTestUITests/popTestUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // popTestUITests.m 3 | // popTestUITests 4 | // 5 | // Created by wujunyang on 16/2/13. 6 | // Copyright © 2016年 wujunyang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface popTestUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation popTestUITests 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 | --------------------------------------------------------------------------------