From 63efad3242a46759968fb4020e6afaf7c27fccdd Mon Sep 17 00:00:00 2001 From: Giuseppe Nucifora Date: Tue, 9 Feb 2016 13:58:28 +0100 Subject: [PATCH] - Release 0.1.0 --- ...NImagePickerViewControllerViewController.m | 3 +- Example/Podfile.lock | 5 +- .../DGActivityIndicatorBallBeatAnimation.h | 13 + .../DGActivityIndicatorBallBeatAnimation.m | 57 + ...ActivityIndicatorBallClipRotateAnimation.h | 13 + ...ActivityIndicatorBallClipRotateAnimation.m | 52 + ...IndicatorBallClipRotateMultipleAnimation.h | 13 + ...IndicatorBallClipRotateMultipleAnimation.m | 90 + ...ityIndicatorBallClipRotatePulseAnimation.h | 13 + ...ityIndicatorBallClipRotatePulseAnimation.m | 85 + ...DGActivityIndicatorBallGridBeatAnimation.h | 13 + ...DGActivityIndicatorBallGridBeatAnimation.m | 55 + ...GActivityIndicatorBallGridPulseAnimation.h | 13 + ...GActivityIndicatorBallGridPulseAnimation.m | 67 + .../DGActivityIndicatorBallPulseAnimation.h | 13 + .../DGActivityIndicatorBallPulseAnimation.m | 44 + ...GActivityIndicatorBallPulseSyncAnimation.h | 13 + ...GActivityIndicatorBallPulseSyncAnimation.m | 46 + .../DGActivityIndicatorBallRotateAnimation.h | 13 + .../DGActivityIndicatorBallRotateAnimation.m | 74 + .../DGActivityIndicatorBallScaleAnimation.h | 13 + .../DGActivityIndicatorBallScaleAnimation.m | 49 + ...ivityIndicatorBallScaleMultipleAnimation.h | 13 + ...ivityIndicatorBallScaleMultipleAnimation.m | 53 + ...ctivityIndicatorBallScaleRippleAnimation.h | 13 + ...ctivityIndicatorBallScaleRippleAnimation.m | 53 + ...ndicatorBallScaleRippleMultipleAnimation.h | 13 + ...ndicatorBallScaleRippleMultipleAnimation.m | 58 + .../DGActivityIndicatorBallSpinFadeLoader.h | 13 + .../DGActivityIndicatorBallSpinFadeLoader.m | 86 + ...tivityIndicatorBallTrianglePathAnimation.h | 13 + ...tivityIndicatorBallTrianglePathAnimation.m | 100 + .../DGActivityIndicatorBallZigZagAnimation.h | 13 + .../DGActivityIndicatorBallZigZagAnimation.m | 60 + ...ivityIndicatorBallZigZagDeflectAnimation.h | 13 + ...ivityIndicatorBallZigZagDeflectAnimation.m | 61 + ...tivityIndicatorCookieTerminatorAnimation.h | 14 + ...tivityIndicatorCookieTerminatorAnimation.m | 82 + ...DGActivityIndicatorDoubleBounceAnimation.h | 13 + ...DGActivityIndicatorDoubleBounceAnimation.m | 51 + .../DGActivityIndicatorFiveDotsAnimation.h | 13 + .../DGActivityIndicatorFiveDotsAnimation.m | 99 + .../DGActivityIndicatorLineScaleAnimation.h | 13 + .../DGActivityIndicatorLineScaleAnimation.m | 43 + ...ActivityIndicatorLineScalePartyAnimation.h | 13 + ...ActivityIndicatorLineScalePartyAnimation.m | 43 + ...ivityIndicatorLineScalePulseOutAnimation.h | 13 + ...ivityIndicatorLineScalePulseOutAnimation.m | 43 + ...IndicatorLineScalePulseOutRapidAnimation.h | 13 + ...IndicatorLineScalePulseOutRapidAnimation.m | 43 + .../DGActivityIndicatorNineDotsAnimation.h | 13 + .../DGActivityIndicatorNineDotsAnimation.m | 62 + ...ivityIndicatorRotatingSandglassAnimation.h | 14 + ...ivityIndicatorRotatingSandglassAnimation.m | 62 + ...ctivityIndicatorRotatingSquaresAnimation.h | 13 + ...ctivityIndicatorRotatingSquaresAnimation.m | 73 + ...ActivityIndicatorRotatingTrigonAnimation.h | 14 + ...ActivityIndicatorRotatingTrigonAnimation.m | 68 + .../DGActivityIndicatorThreeDotsAnimation.h | 13 + .../DGActivityIndicatorThreeDotsAnimation.m | 59 + ...tivityIndicatorTriangleSkewSpinAnimation.h | 13 + ...tivityIndicatorTriangleSkewSpinAnimation.m | 58 + .../DGActivityIndicatorTriplePulseAnimation.h | 13 + .../DGActivityIndicatorTriplePulseAnimation.m | 50 + .../DGActivityIndicatorTripleRingsAnimation.h | 12 + .../DGActivityIndicatorTripleRingsAnimation.m | 55 + .../DGActivityIndicatorTwoDotsAnimation.h | 13 + .../DGActivityIndicatorTwoDotsAnimation.m | 48 + .../DGActivityIndicatorAnimationProtocol.h | 16 + .../DGActivityIndicatorView.h | 62 + .../DGActivityIndicatorView.m | 201 ++ Example/Pods/DGActivityIndicatorView/LICENSE | 22 + .../Pods/DGActivityIndicatorView/README.md | 87 + .../PNImagePickerViewController.podspec.json | 3 + Example/Pods/Manifest.lock | 5 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 2667 ++++++++++------- .../PNImagePickerViewController.xcscheme | 2 +- .../DGActivityIndicatorView-dummy.m | 5 + .../DGActivityIndicatorView-prefix.pch | 4 + .../DGActivityIndicatorView-umbrella.h | 41 + .../DGActivityIndicatorView.modulemap | 6 + .../DGActivityIndicatorView.xcconfig | 6 + .../DGActivityIndicatorView/Info.plist | 26 + ...ntroller_Example-acknowledgements.markdown | 26 + ...wController_Example-acknowledgements.plist | 30 + ...PickerViewController_Example-frameworks.sh | 2 + ...ickerViewController_Example.debug.xcconfig | 4 +- ...kerViewController_Example.release.xcconfig | 4 +- ...Controller_Tests-acknowledgements.markdown | 26 + ...iewController_Tests-acknowledgements.plist | 30 + ...gePickerViewController_Tests-frameworks.sh | 2 + ...ePickerViewController_Tests.debug.xcconfig | 4 +- ...ickerViewController_Tests.release.xcconfig | 4 +- PNImagePickerViewController.podspec | 7 +- Pod/Classes/PNCollectionViewCell.m | 29 +- Pod/Classes/PNImagePickerViewController.h | 10 +- Pod/Classes/PNImagePickerViewController.m | 364 ++- README.md | 20 + 98 files changed, 4911 insertions(+), 1272 deletions(-) create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.m create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorAnimationProtocol.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorView.h create mode 100644 Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorView.m create mode 100644 Example/Pods/DGActivityIndicatorView/LICENSE create mode 100644 Example/Pods/DGActivityIndicatorView/README.md create mode 100644 Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-dummy.m create mode 100644 Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-prefix.pch create mode 100644 Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-umbrella.h create mode 100644 Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.modulemap create mode 100644 Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.xcconfig create mode 100644 Example/Pods/Target Support Files/DGActivityIndicatorView/Info.plist diff --git a/Example/PNImagePickerViewController/PNImagePickerViewControllerViewController.m b/Example/PNImagePickerViewController/PNImagePickerViewControllerViewController.m index dfc0fe6..bbaa25a 100644 --- a/Example/PNImagePickerViewController/PNImagePickerViewControllerViewController.m +++ b/Example/PNImagePickerViewController/PNImagePickerViewControllerViewController.m @@ -32,7 +32,8 @@ _imageView = [UIImageView newAutoLayoutView]; [_imageView setBackgroundColor:[[UIColor lightGrayColor] colorWithAlphaComponent:0.6]]; - + [_imageView setContentMode:UIViewContentModeScaleAspectFit]; + [self.view addSubview:_imageView]; [self.view setNeedsUpdateConstraints]; diff --git a/Example/Podfile.lock b/Example/Podfile.lock index e1dbdcb..e7ef14b 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,4 +1,5 @@ PODS: + - DGActivityIndicatorView (2.0) - Expecta (1.0.5) - Expecta+Snapshots (2.0.0): - Expecta (~> 1.0) @@ -9,6 +10,7 @@ PODS: - FBSnapshotTestCase/SwiftSupport (2.0.7): - FBSnapshotTestCase/Core - PNImagePickerViewController (0.1.0): + - DGActivityIndicatorView - PureLayout - PureLayout (3.0.1) - Specta (1.0.5) @@ -26,10 +28,11 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: + DGActivityIndicatorView: 52875b025a6ccf6a431a905285c12e2bb95eb559 Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe Expecta+Snapshots: 29b38dd695bc72a0ed2bea833937d78df41943ba FBSnapshotTestCase: 7e85180d0d141a0cf472352edda7e80d7eaeb547 - PNImagePickerViewController: 9eaf2575e70de776463e23904f9d466f98d27ad4 + PNImagePickerViewController: 8225ee425aa04f1f3716c7ea9786561de3782096 PureLayout: f35f5384c9c4e4479df041dbe33ad7577b71ddfb Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2 diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.h new file mode 100644 index 0000000..50bcf97 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallBeatAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallBeatAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.m new file mode 100644 index 0000000..f306d31 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.m @@ -0,0 +1,57 @@ +// +// DGActivityIndicatorBallBeatAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallBeatAnimation.h" + +@implementation DGActivityIndicatorBallBeatAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 0.7f; + NSArray *beginTimes = @[@0.35f, @0.0f, @0.35f]; + CGFloat circleSpacing = 2.0f; + CGFloat circleSize = (size.width - circleSpacing * 2) / 3; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - circleSize) / 2; + + // Scale animation + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.duration = duration; + scaleAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + scaleAnimation.values = @[@1.0f, @0.75f, @1.0f]; + + // Opacity animation + CAKeyframeAnimation *opacityAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + + opacityAnimation.duration = duration; + opacityAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + opacityAnimation.values = @[@1.0f, @0.2f, @1.0f]; + + // Aniamtion + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.duration = duration; + animation.animations = @[scaleAnimation, opacityAnimation]; + animation.repeatCount = HUGE_VALF; + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + + // Draw circles + for (int i = 0; i < 3; i++) { + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, circleSize, circleSize) cornerRadius:circleSize / 2]; + + animation.beginTime = [beginTimes[i] floatValue]; + circle.fillColor = tintColor.CGColor; + circle.path = circlePath.CGPath; + [circle addAnimation:animation forKey:@"animation"]; + circle.frame = CGRectMake(x + circleSize * i + circleSpacing * i, y, circleSize, circleSize); + [layer addSublayer:circle]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.h new file mode 100644 index 0000000..f439f08 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallClipRotateAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/19/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallClipRotateAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.m new file mode 100644 index 0000000..d178e7d --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.m @@ -0,0 +1,52 @@ +// +// DGActivityIndicatorBallClipRotateAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/19/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallClipRotateAnimation.h" + +@implementation DGActivityIndicatorBallClipRotateAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 0.75f; + + // Scale animation + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.6f, 0.6f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)]]; + scaleAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + + // Rotate animation + CAKeyframeAnimation *rotateAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"]; + + rotateAnimation.values = @[@0, @M_PI, @(2 * M_PI)]; + rotateAnimation.keyTimes = scaleAnimation.keyTimes; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, rotateAnimation]; + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + animation.duration = duration; + animation.repeatCount = HUGE_VALF; + + // Draw ball clip + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(size.width / 2, size.height / 2) radius:size.width / 2 startAngle:1.5 * M_PI endAngle:M_PI clockwise:true]; + + circle.path = circlePath.CGPath; + circle.lineWidth = 2; + circle.fillColor = nil; + circle.strokeColor = tintColor.CGColor; + + circle.frame = CGRectMake((layer.bounds.size.width - size.width) / 2, (layer.bounds.size.height - size.height) / 2, size.width, size.height); + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.h new file mode 100644 index 0000000..ea972ea --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallClipRotateMultipleAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/19/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallClipRotateMultipleAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.m new file mode 100644 index 0000000..a0b839c --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.m @@ -0,0 +1,90 @@ +// +// DGActivityIndicatorBallClipRotateMultipleAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/19/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallClipRotateMultipleAnimation.h" + +@implementation DGActivityIndicatorBallClipRotateMultipleAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat bigDuration = 1.0f; + CGFloat smallDuration = bigDuration / 2; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + + // Big circle + { + CGFloat circleSize = size.width; + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPath]; + + [circlePath addArcWithCenter:CGPointMake(circleSize / 2, circleSize / 2) radius:circleSize / 2 startAngle:-3 * M_PI / 4 endAngle:-M_PI / 4 clockwise:true]; + [circlePath moveToPoint:CGPointMake(circleSize / 2 - circleSize / 2 * cosf(M_PI / 4), circleSize / 2 + circleSize / 2 * sinf(M_PI / 4))]; + [circlePath addArcWithCenter:CGPointMake(circleSize / 2, circleSize / 2) radius:circleSize / 2 startAngle:-5 * M_PI / 4 endAngle:-7 * M_PI / 4 clockwise:false]; + circle.path = circlePath.CGPath; + circle.lineWidth = 2; + circle.fillColor = nil; + circle.strokeColor = tintColor.CGColor; + + circle.frame = CGRectMake((layer.bounds.size.width - circleSize) / 2, (layer.bounds.size.height - circleSize) / 2, circleSize, circleSize); + [circle addAnimation: [self createAnimationInDuration:bigDuration withTimingFunction:timingFunction reverse:false] forKey:@"animation"]; + [layer addSublayer:circle]; + } + + // Small circle + { + CGFloat circleSize = size.width / 2; + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPath]; + + [circlePath addArcWithCenter:CGPointMake(circleSize / 2, circleSize / 2) radius:circleSize / 2 startAngle:3 * M_PI / 4 endAngle:5 * M_PI / 4 clockwise:true]; + [circlePath moveToPoint:CGPointMake(circleSize / 2 + circleSize / 2 * cosf(M_PI / 4), circleSize / 2 - circleSize / 2 * sinf(M_PI / 4))]; + [circlePath addArcWithCenter:CGPointMake(circleSize / 2, circleSize / 2) radius:circleSize / 2 startAngle:-M_PI / 4 endAngle:M_PI / 4 clockwise:true]; + circle.path = circlePath.CGPath; + circle.lineWidth = 2; + circle.fillColor = nil; + circle.strokeColor = tintColor.CGColor; + + circle.frame = CGRectMake((layer.bounds.size.width - circleSize) / 2, (layer.bounds.size.height - circleSize) / 2, circleSize, circleSize); + [circle addAnimation:[self createAnimationInDuration:smallDuration withTimingFunction:timingFunction reverse:true] forKey:@"animation"]; + [layer addSublayer:circle]; + } +} + +- (CAAnimation *)createAnimationInDuration:(CGFloat) duration withTimingFunction:(CAMediaTimingFunction *) timingFunction reverse:(BOOL) reverse { + // Scale animation + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + scaleAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.6f, 0.6f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)]]; + scaleAnimation.duration = duration; + scaleAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Rotate animation + CAKeyframeAnimation *rotateAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"]; + + if (!reverse) { + rotateAnimation.values = @[@0, @M_PI, @(2 * M_PI)]; + } else { + rotateAnimation.values = @[@0, @-M_PI, @(-2 * M_PI)]; + } + rotateAnimation.keyTimes = scaleAnimation.keyTimes; + rotateAnimation.duration = duration; + rotateAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, rotateAnimation]; + animation.repeatCount = HUGE_VALF; + animation.duration = duration; + + return animation; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.h new file mode 100644 index 0000000..25e47fa --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallClipRotatePulseAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/19/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallClipRotatePulseAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.m new file mode 100644 index 0000000..6b7e170 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.m @@ -0,0 +1,85 @@ +// +// DGActivityIndicatorBallClipRotatePulseAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/19/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallClipRotatePulseAnimation.h" + +@implementation DGActivityIndicatorBallClipRotatePulseAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 1.0f; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.09f :0.57f :0.49f :0.9f]; + + // Small circle + { + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.keyTimes = @[@0.0f, @0.3f, @1.0f]; + scaleAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.3f, 0.3f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)]]; + scaleAnimation.duration = duration; + scaleAnimation.repeatCount = HUGE_VALF; + scaleAnimation.timingFunctions = @[timingFunction, timingFunction]; + + CGFloat circleSize = size.width / 2; + CALayer *circle = [CALayer layer]; + + circle.frame = CGRectMake((layer.bounds.size.width - circleSize) / 2, (layer.bounds.size.height - circleSize) / 2, circleSize, circleSize); + circle.backgroundColor = tintColor.CGColor; + circle.cornerRadius = circleSize / 2; + [circle addAnimation:scaleAnimation forKey:@"animation"]; + [layer addSublayer:circle]; + } + + // Big circle + { + // Scale animation + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + scaleAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.6f, 0.6f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)]]; + scaleAnimation.duration = duration; + scaleAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Rotate animation + CAKeyframeAnimation *rotateAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"]; + + rotateAnimation.values = @[@0, @M_PI, @(2 * M_PI)]; + rotateAnimation.keyTimes = scaleAnimation.keyTimes; + rotateAnimation.duration = duration; + rotateAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, rotateAnimation]; + animation.duration = duration; + animation.repeatCount = HUGE_VALF; + + // Draw big circle + CGFloat circleSize = size.width; + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPath]; + + [circlePath addArcWithCenter:CGPointMake(circleSize / 2, circleSize / 2) radius:circleSize / 2 startAngle:-3 * M_PI / 4 endAngle:-M_PI / 4 clockwise:true]; + [circlePath moveToPoint:CGPointMake(circleSize / 2 - circleSize / 2 * cosf(M_PI / 4), circleSize / 2 + circleSize / 2 * sinf(M_PI / 4))]; + [circlePath addArcWithCenter:CGPointMake(circleSize / 2, circleSize / 2) radius:circleSize / 2 startAngle:-5 * M_PI / 4 endAngle:-7 * M_PI / 4 clockwise:false]; + circle.path = circlePath.CGPath; + circle.lineWidth = 2; + circle.fillColor = nil; + circle.strokeColor = tintColor.CGColor; + + circle.frame = CGRectMake((layer.bounds.size.width - circleSize) / 2, (layer.bounds.size.height - circleSize) / 2, circleSize, circleSize); + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.h new file mode 100644 index 0000000..fbf035e --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallGridBeatAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallGridBeatAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.m new file mode 100644 index 0000000..83b33f8 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.m @@ -0,0 +1,55 @@ +// +// DGActivityIndicatorBallGridBeatAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallGridBeatAnimation.h" + +@implementation DGActivityIndicatorBallGridBeatAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSArray *durations = @[@0.96f, @0.93f, @1.19f, @1.13f, @1.34f, @0.94f, @1.2f, @0.82f, @1.19f]; + NSArray *timeOffsets = @[@0.36f, @0.4f, @0.68f, @0.41f, @0.71f, @-0.15f, @-0.12f, @0.01f, @0.32f]; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]; + CGFloat circleSpacing = 2; + CGFloat circleSize = (size.width - circleSpacing * 2) / 3; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + + // Animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + + animation.beginTime = CACurrentMediaTime(); + animation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + animation.values = @[@1.0f, @0.7f, @1.0f]; + animation.repeatCount = HUGE_VALF; + animation.timingFunctions = @[timingFunction, timingFunction]; + + // Draw circle + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + CALayer *circle = [self createCirleWith:circleSize color:tintColor]; + + animation.duration = [durations[3 * i + j] floatValue]; + animation.timeOffset = [timeOffsets[3 * i + j] floatValue]; + circle.frame = CGRectMake(x + circleSize * j + circleSpacing * j, y + circleSize * i + circleSpacing * i, circleSize, circleSize); + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; + } + } +} + +- (CALayer *)createCirleWith:(CGFloat)size color:(UIColor *)color { + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, size, size) cornerRadius:size / 2]; + + circle.fillColor = color.CGColor; + circle.path = circlePath.CGPath; + + return circle; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.h new file mode 100644 index 0000000..e99927b --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallGridPulseAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallGridPulseAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.m new file mode 100644 index 0000000..1ab6881 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.m @@ -0,0 +1,67 @@ +// +// DGActivityIndicatorBallGridPulseAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallGridPulseAnimation.h" + +@implementation DGActivityIndicatorBallGridPulseAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSArray *durations = @[@0.72f, @1.02f, @1.28f, @1.42f, @1.45f, @1.18f, @0.87f, @1.45f, @1.06f]; + NSArray *timeOffsets = @[@-0.06f, @0.25f, @-0.17f, @0.48f, @0.31f, @0.03f, @0.46f, @0.78f, @0.45f]; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]; + CGFloat circleSpacing = 2; + CGFloat circleSize = (size.width - circleSpacing * 2) / 3; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + + // Scale animation + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + scaleAnimation.values = @[@1.0f, @0.5f, @1.0f]; + scaleAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Animation + CAKeyframeAnimation *opacityAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + + opacityAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + opacityAnimation.values = @[@1.0f, @0.7f, @1.0f]; + opacityAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, opacityAnimation]; + animation.beginTime = CACurrentMediaTime(); + animation.repeatCount = HUGE_VALF; + + // Draw circle + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + CALayer *circle = [self createCirleWith:circleSize color:tintColor]; + + animation.duration = [durations[3 * i + j] floatValue]; + animation.timeOffset = [timeOffsets[3 * i + j] floatValue]; + circle.frame = CGRectMake(x + circleSize * j + circleSpacing * j, y + circleSize * i + circleSpacing * i, circleSize, circleSize); + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; + } + } +} + +- (CALayer *)createCirleWith:(CGFloat)size color:(UIColor *)color { + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, size, size) cornerRadius:size / 2]; + + circle.fillColor = color.CGColor; + circle.path = circlePath.CGPath; + + return circle; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.h new file mode 100644 index 0000000..8a61f4f --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallPulseAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/19/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallPulseAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.m new file mode 100644 index 0000000..cee8bfe --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.m @@ -0,0 +1,44 @@ +// +// DGActivityIndicatorBallPulseAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/19/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallPulseAnimation.h" + +@implementation DGActivityIndicatorBallPulseAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat circlePadding = 5.0f; + CGFloat circleSize = (size.width - 2 * circlePadding) / 3; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - circleSize) / 2; + CGFloat duration = 0.75f; + NSArray *timeBegins = @[@0.12f, @0.24f, @0.36f]; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.2f :0.68f :0.18f :1.08f]; + + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + + animation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.3f, 0.3f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)]]; + animation.keyTimes = @[@0.0f, @0.3f, @1.0f]; + animation.timingFunctions = @[timingFunction, timingFunction]; + animation.duration = duration; + animation.repeatCount = HUGE_VALF; + + for (int i = 0; i < 3; i++) { + CALayer *circle = [CALayer layer]; + + circle.frame = CGRectMake(x + i * circleSize + i * circlePadding, y, circleSize, circleSize); + circle.backgroundColor = tintColor.CGColor; + circle.cornerRadius = circle.bounds.size.width / 2; + animation.beginTime = [timeBegins[i] floatValue]; + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.h new file mode 100644 index 0000000..11fa6d3 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallPulseSyncAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallPulseSyncAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.m new file mode 100644 index 0000000..0178fd1 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.m @@ -0,0 +1,46 @@ +// +// DGActivityIndicatorBallPulseSyncAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallPulseSyncAnimation.h" + +@implementation DGActivityIndicatorBallPulseSyncAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 0.6f; + NSArray *beginTimes = @[@0.07f, @0.14f, @0.21f]; + CGFloat circleSpacing = 2.0f; + CGFloat circleSize = (size.width - circleSpacing * 2) / 3; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - circleSize) / 2; + CGFloat deltaY = (size.height / 2 - circleSize / 2) / 2; + CAMediaTimingFunction *timingFunciton = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + + // Animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.translation.y"]; + + animation.duration = duration; + animation.keyTimes = @[@0.0f, @0.33f, @0.66f, @1.0f]; + animation.values = @[@0.0f, @(deltaY), @(-deltaY), @0.0f]; + animation.timingFunctions = @[timingFunciton, timingFunciton, timingFunciton]; + animation.repeatCount = HUGE_VALF; + + // Draw circles + for (int i = 0; i < 3; i++) { + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, circleSize, circleSize) cornerRadius:circleSize / 2]; + + animation.beginTime = [beginTimes[i] floatValue]; + circle.fillColor = tintColor.CGColor; + circle.path = circlePath.CGPath; + [circle addAnimation:animation forKey:@"animation"]; + circle.frame = CGRectMake(x + circleSize * i + circleSpacing * i, y, circleSize, circleSize); + [layer addSublayer:circle]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.h new file mode 100644 index 0000000..ff58c48 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallRotateAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallRotateAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.m new file mode 100644 index 0000000..3b9528b --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.m @@ -0,0 +1,74 @@ +// +// DGActivityIndicatorBallRotateAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallRotateAnimation.h" + +@implementation DGActivityIndicatorBallRotateAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 1.0f; + CGFloat circleSize = size.width / 5; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.7f :-0.13f :0.22f :0.86f]; + + // Scale animation + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + scaleAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.6f, 0.6f, 1.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)]]; + scaleAnimation.duration = duration; + scaleAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Rotate animation + CAKeyframeAnimation *rotateAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"]; + + rotateAnimation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + rotateAnimation.values = @[@0, @-M_PI, @(-2 * M_PI)]; + rotateAnimation.duration = duration; + rotateAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, rotateAnimation]; + animation.duration = duration; + animation.repeatCount = HUGE_VALF; + + // Draw circles + CALayer *leftCircle = [CALayer layer]; + + leftCircle.backgroundColor = tintColor.CGColor; + leftCircle.opacity = 0.8f; + leftCircle.cornerRadius = circleSize / 2; + leftCircle.frame = CGRectMake(0, (size.height - circleSize) / 2, circleSize, circleSize); + + CALayer *rightCircle = [CALayer layer]; + + rightCircle.backgroundColor = tintColor.CGColor; + rightCircle.opacity = 0.8f; + rightCircle.cornerRadius = circleSize / 2; + rightCircle.frame = CGRectMake(size.width - circleSize, (size.height - circleSize) / 2, circleSize, circleSize); + + CALayer *centerCircle = [CALayer layer]; + + centerCircle.backgroundColor = tintColor.CGColor; + centerCircle.cornerRadius = circleSize / 2; + centerCircle.frame = CGRectMake((size.width - circleSize) / 2, (size.height - circleSize) / 2, circleSize, circleSize); + + CALayer *circle = [CALayer layer]; + + circle.frame = CGRectMake((layer.bounds.size.width - size.width) / 2, (layer.bounds.size.height - size.height) / 2, size.width, size.height); + [circle addSublayer:leftCircle]; + [circle addSublayer:rightCircle]; + [circle addSublayer:centerCircle]; + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.h new file mode 100644 index 0000000..0ecba21 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallScaleAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallScaleAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.m new file mode 100644 index 0000000..c43cd3b --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.m @@ -0,0 +1,49 @@ +// +// DGActivityIndicatorBallScaleAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallScaleAnimation.h" + +@implementation DGActivityIndicatorBallScaleAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 1.0f; + + // Scale animation + CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.duration = duration; + scaleAnimation.fromValue = @0.0f; + scaleAnimation.toValue = @1.0f; + + // Opacity animation + CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; + + opacityAnimation.duration = duration; + opacityAnimation.fromValue = @1.0f; + opacityAnimation.toValue = @0.0f; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, opacityAnimation]; + animation.duration = duration; + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + animation.repeatCount = HUGE_VALF; + + // Draw circle + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(0, 0, size.width, size.height) cornerRadius:size.width / 2]; + + circle.fillColor = tintColor.CGColor; + circle.path = circlePath.CGPath; + [circle addAnimation:animation forKey:@"animation"]; + circle.frame = CGRectMake((layer.bounds.size.width - size.width) / 2, (layer.bounds.size.height - size.height) / 2, size.width, size.height); + [layer addSublayer:circle]; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.h new file mode 100644 index 0000000..bbf0817 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallScaleMultipleAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallScaleMultipleAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.m new file mode 100644 index 0000000..b981a32 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.m @@ -0,0 +1,53 @@ +// +// DGActivityIndicatorBallScaleMultipleAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallScaleMultipleAnimation.h" + +@implementation DGActivityIndicatorBallScaleMultipleAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 1.0f; + NSArray *beginTimes = @[@0.0f, @0.2f, @0.4f]; + + // Scale animation + CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.duration = duration; + scaleAnimation.fromValue = @0.0f; + scaleAnimation.toValue = @1.0f; + + // Opacity animation + CAKeyframeAnimation *opacityAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + + opacityAnimation.duration = duration; + opacityAnimation.keyTimes = @[@0.0f, @0.05f, @1.0f]; + opacityAnimation.values = @[@0.0f, @1.0f, @0.0f]; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, opacityAnimation]; + animation.duration = duration; + animation.repeatCount = HUGE_VALF; + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + + for (int i = 0; i < 3; i++) { + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, size.width, size.height) cornerRadius:size.width / 2]; + + animation.beginTime = [beginTimes[i] floatValue]; + circle.fillColor = tintColor.CGColor; + circle.path = circlePath.CGPath; + circle.opacity = 0.0f; + [circle addAnimation:animation forKey:@"animation"]; + circle.frame = CGRectMake((layer.bounds.size.width - size.width) / 2, (layer.bounds.size.height - size.height) / 2, size.width, size.height); + [layer addSublayer:circle]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.h new file mode 100644 index 0000000..d4c402d --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallScaleTrippleAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallScaleRippleAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.m new file mode 100644 index 0000000..4f24bb0 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.m @@ -0,0 +1,53 @@ +// +// DGActivityIndicatorBallScaleTrippleAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallScaleRippleAnimation.h" + +@implementation DGActivityIndicatorBallScaleRippleAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 1.0f; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.21f :0.53f :0.56f :0.8f]; + + // Scale animation + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.duration = duration; + scaleAnimation.keyTimes = @[@0.0f, @0.7f]; + scaleAnimation.values = @[@0.1f, @1.0f]; + scaleAnimation.timingFunction = timingFunction; + + // Opacity animation + CAKeyframeAnimation *opacityAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + + opacityAnimation.duration = duration; + opacityAnimation.keyTimes = @[@0.0f, @0.7f, @1.0f]; + opacityAnimation.values = @[@1.0f, @0.7f, @0.0f]; + opacityAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, opacityAnimation]; + animation.duration = duration; + animation.repeatCount = HUGE_VALF; + + // Draw circle + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, size.width, size.height) cornerRadius:size.width / 2]; + + circle.fillColor = nil; + circle.lineWidth = 2; + circle.strokeColor = tintColor.CGColor; + circle.path = circlePath.CGPath; + [circle addAnimation:animation forKey:@"animation"]; + circle.frame = CGRectMake((layer.bounds.size.width - size.width) / 2, (layer.bounds.size.height - size.height) / 2, size.width, size.height); + [layer addSublayer:circle]; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.h new file mode 100644 index 0000000..ec30764 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallScaleRippleMultipleAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallScaleRippleMultipleAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.m new file mode 100644 index 0000000..0f03208 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.m @@ -0,0 +1,58 @@ +// +// DGActivityIndicatorBallScaleRippleMultipleAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallScaleRippleMultipleAnimation.h" + +@implementation DGActivityIndicatorBallScaleRippleMultipleAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 1.25f; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.21f :0.53f :0.56f :0.8f]; + NSArray *timeOffsets = @[@0.0f, @0.2f, @0.4f]; + + // Scale animation + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.duration = duration; + scaleAnimation.keyTimes = @[@0.0f, @0.7f]; + scaleAnimation.values = @[@0.1f, @1.0f]; + scaleAnimation.timingFunction = timingFunction; + + // Opacity animation + CAKeyframeAnimation *opacityAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + + opacityAnimation.duration = duration; + opacityAnimation.keyTimes = @[@0.0f, @0.7f, @1.0f]; + opacityAnimation.values = @[@1.0f, @0.7f, @0.0f]; + opacityAnimation.timingFunctions = @[timingFunction, timingFunction]; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[scaleAnimation, opacityAnimation]; + animation.duration = duration; + animation.repeatCount = HUGE_VALF; + animation.beginTime = CACurrentMediaTime(); + + // Draw circles + for (int i = 0; i < 3; i++) { + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, size.width, size.height) cornerRadius:size.width / 2]; + + animation.timeOffset = [timeOffsets[i] floatValue]; + circle.fillColor = nil; + circle.lineWidth = 2; + circle.strokeColor = tintColor.CGColor; + circle.path = circlePath.CGPath; + [circle addAnimation:animation forKey:@"animation"]; + circle.frame = CGRectMake((layer.bounds.size.width - size.width) / 2, (layer.bounds.size.height - size.height) / 2, size.width, size.height); + [layer addSublayer:circle]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.h new file mode 100644 index 0000000..6649163 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallSpinFadeLoader.h +// CheeseDigest +// +// Created by Robin.Chao on 9/8/15. +// Copyright (c) 2015 mRocker. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallSpinFadeLoader : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.m new file mode 100644 index 0000000..33b01d7 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.m @@ -0,0 +1,86 @@ +// +// DGActivityIndicatorBallSpinFadeLoader.m +// CheeseDigest +// +// Created by Robin.Chao on 9/8/15. +// Copyright (c) 2015 mRocker. All rights reserved. +// + +#import "DGActivityIndicatorBallSpinFadeLoader.h" + +@implementation DGActivityIndicatorBallSpinFadeLoader + + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + + CGFloat circleSpacing = -2; + CGFloat circleSize = (size.width - 4 * circleSpacing) / 5; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + + CFTimeInterval duration = 1; + NSTimeInterval beginTime = CACurrentMediaTime(); + + NSArray *beginTimes = @[@0, @0.12, @0.24, @0.36, @0.48, @0.6, @0.72, @0.84]; + + CAKeyframeAnimation *scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + scaleAnimation.keyTimes = @[@0, @0.5, @1]; + scaleAnimation.values = @[@1, @0.4, @1]; + scaleAnimation.duration = duration; + + + CAKeyframeAnimation *opacityAnimaton = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + + + opacityAnimaton.keyTimes = @[@0, @0.5, @1]; + opacityAnimaton.values = @[@1, @0.3, @1]; + opacityAnimaton.duration = duration; + + + + + CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; + animationGroup.animations = @[scaleAnimation, opacityAnimaton]; + animationGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + animationGroup.duration = duration; + animationGroup.repeatCount = HUGE; + animationGroup.removedOnCompletion = NO; + + + for (int i = 0; i < 8; i++) { + CALayer *circle = [self circleLayer:(M_PI_4 * i) size:circleSize origin:CGPointMake(x, y) containerSize:size color:tintColor]; + animationGroup.beginTime = beginTime + [beginTimes[i] doubleValue]; + + [layer addSublayer:circle]; + [circle addAnimation:animationGroup forKey:@"animation"]; + } + +} + + +- (CALayer *)circleLayer:(CGFloat)angle size:(CGFloat)size origin:(CGPoint)origin containerSize:(CGSize)containerSize color:(UIColor *)color{ + CGFloat radius = containerSize.width/2; + CALayer *circle = [self createLayerWith:CGSizeMake(size, size) color:color]; + CGRect frame = CGRectMake((origin.x + radius * (cos(angle) + 1) - size / 2), origin.y + radius * (sin(angle) + 1) - size / 2, size, size); + circle.frame = frame; + + return circle; +} + +- (CALayer *)createLayerWith:(CGSize)size color:(UIColor *)color{ + CAShapeLayer *layer = [CAShapeLayer layer]; + UIBezierPath *path = [UIBezierPath bezierPath]; + + [path addArcWithCenter:CGPointMake(size.width / 2,size.height / 2) radius:(size.width / 2) startAngle:0 endAngle:2 * M_PI clockwise:NO]; + layer.fillColor = color.CGColor; + layer.backgroundColor = nil; + layer.path = path.CGPath; + + return layer; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.h new file mode 100644 index 0000000..ba9ff81 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallTrianglePathAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallTrianglePathAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.m new file mode 100644 index 0000000..033a1b6 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.m @@ -0,0 +1,100 @@ +// +// DGActivityIndicatorBallTrianglePathAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallTrianglePathAnimation.h" + +@implementation DGActivityIndicatorBallTrianglePathAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 2.0f; + CGFloat circleSize = size.width / 5; + CGFloat deltaX = size.width / 2 - circleSize / 2; + CGFloat deltaY = size.height / 2 - circleSize / 2; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + + // Animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + + animation.keyTimes = @[@0.0f, @0.33f, @0.66f, @1.0f]; + animation.duration = duration; + animation.timingFunctions = @[timingFunction, timingFunction, timingFunction]; + animation.repeatCount = HUGE_VALF; + + // Top-center circle + CALayer *topCenterCircle = [self createCircleWithSize:circleSize color:tintColor]; + + [self changeAnimation:animation values:@[@"{0,0}", @"{hx,fy}", @"{-hx,fy}", @"{0,0}"] deltaX:deltaX deltaY:deltaY]; + topCenterCircle.frame = CGRectMake(x + size.width / 2 - circleSize / 2, y, circleSize, circleSize); + [topCenterCircle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:topCenterCircle]; + + // Bottom-left circle + CALayer *bottomLeftCircle = [self createCircleWithSize:circleSize color:tintColor]; + + [self changeAnimation:animation values:@[@"{0,0}", @"{hx,-fy}", @"{fx,0}", @"{0,0}"] deltaX:deltaX deltaY:deltaY]; + bottomLeftCircle.frame = CGRectMake(x, y + size.height - circleSize, circleSize, circleSize); + [bottomLeftCircle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:bottomLeftCircle]; + + // Bottom-right circle + CALayer *bottomRigthCircle = [self createCircleWithSize:circleSize color:tintColor]; + + [self changeAnimation:animation values:@[@"{0,0}", @"{-fx,0}", @"{-hx,-fy}", @"{0,0}"] deltaX:deltaX deltaY:deltaY]; + bottomRigthCircle.frame = CGRectMake(x + size.width - circleSize, y + size.height - circleSize, circleSize, circleSize); + [bottomRigthCircle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:bottomRigthCircle]; +} + +- (CALayer *)createCircleWithSize:(CGFloat)size color:(UIColor *)color { + CAShapeLayer *circle = [CAShapeLayer layer]; + UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, size, size) cornerRadius:size / 2]; + + circle.fillColor = nil; + circle.strokeColor = color.CGColor; + circle.lineWidth = 1; + circle.path = circlePath.CGPath; + + return circle; +} + +- (CAAnimation *)changeAnimation:(CAKeyframeAnimation *)animation values:(NSArray *)rawValues deltaX:(CGFloat)deltaX deltaY:(CGFloat)deltaY { + NSMutableArray *values = [NSMutableArray arrayWithCapacity:5]; + + for (NSString *rawValue in rawValues) { + CGPoint point = CGPointFromString([self translate:rawValue withDeltaX:deltaX deltaY:deltaY]); + + [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(point.x, point.y, 0)]]; + } + animation.values = values; + + return animation; +} + +- (NSString *)translate:(NSString *)valueString withDeltaX:(CGFloat)deltaX deltaY:(CGFloat)deltaY { + NSMutableString *valueMutableString = [NSMutableString stringWithString:valueString]; + CGFloat fullDeltaX = 2 * deltaX; + CGFloat fullDeltaY = 2 * deltaY; + NSRange range; + + range.location = 0; + range.length = valueString.length; + + [valueMutableString replaceOccurrencesOfString:@"hx" withString:[NSString stringWithFormat:@"%f", deltaX] options:NSCaseInsensitiveSearch range:range]; + range.length = valueMutableString.length; + [valueMutableString replaceOccurrencesOfString:@"fx" withString:[NSString stringWithFormat:@"%f", fullDeltaX] options:NSCaseInsensitiveSearch range:range]; + range.length = valueMutableString.length; + [valueMutableString replaceOccurrencesOfString:@"hy" withString:[NSString stringWithFormat:@"%f", deltaY] options:NSCaseInsensitiveSearch range:range]; + range.length = valueMutableString.length; + [valueMutableString replaceOccurrencesOfString:@"fy" withString:[NSString stringWithFormat:@"%f", fullDeltaY] options:NSCaseInsensitiveSearch range:range]; + + return valueMutableString; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.h new file mode 100644 index 0000000..e4ca4fa --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallZigZagAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallZigZagAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.m new file mode 100644 index 0000000..f33c0a1 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.m @@ -0,0 +1,60 @@ +// +// DGActivityIndicatorBallZigZagAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallZigZagAnimation.h" + +@implementation DGActivityIndicatorBallZigZagAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 0.7f; + CGFloat circleSize = size.width / 5; + CGFloat deltaX = size.width / 2 - circleSize / 2; + CGFloat deltaY = size.height / 2 - circleSize / 2; + + // Circle 1 animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + + animation.duration = duration; + animation.keyTimes = @[@0.0f, @0.33f, @0.66f, @1.0f]; + animation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 0, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-deltaX, -deltaY, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(deltaX, -deltaY, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 0, 0)]]; + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + animation.repeatCount = HUGE_VALF; + + // Draw circle 1 + { + CALayer *circle = [CALayer layer]; + + circle.backgroundColor = tintColor.CGColor; + circle.cornerRadius = circleSize / 2; + circle.frame = CGRectMake((layer.bounds.size.width - circleSize) / 2, (layer.bounds.size.height - circleSize) / 2, circleSize, circleSize); + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; + } + + // Circle 2 animation + animation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 0, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(deltaX, deltaY, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-deltaX, deltaY, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 0, 0)]]; + + // Draw circle 2 + { + CALayer *circle = [CALayer layer]; + + circle.backgroundColor = tintColor.CGColor; + circle.cornerRadius = circleSize / 2; + circle.frame = CGRectMake((layer.bounds.size.width - circleSize) / 2, (layer.bounds.size.height - circleSize) / 2, circleSize, circleSize); + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.h new file mode 100644 index 0000000..f65b944 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorBallZigZagDeflectAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorBallZigZagDeflectAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.m new file mode 100644 index 0000000..b0e5191 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.m @@ -0,0 +1,61 @@ +// +// DGActivityIndicatorBallZigZagDeflectAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorBallZigZagDeflectAnimation.h" + +@implementation DGActivityIndicatorBallZigZagDeflectAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 0.75f; + CGFloat circleSize = size.width / 5; + CGFloat deltaX = size.width / 2 - circleSize / 2; + CGFloat deltaY = size.height / 2 - circleSize / 2; + + // Circle 1 animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + + animation.duration = duration; + animation.keyTimes = @[@0.0f, @0.33f, @0.66f, @1.0f]; + animation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 0, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-deltaX, -deltaY, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(deltaX, -deltaY, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 0, 0)]]; + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + animation.repeatCount = HUGE_VALF; + animation.autoreverses = true; + + // Draw circle 1 + { + CALayer *circle = [CALayer layer]; + + circle.backgroundColor = tintColor.CGColor; + circle.cornerRadius = circleSize / 2; + circle.frame = CGRectMake((layer.bounds.size.width - circleSize) / 2, (layer.bounds.size.height - circleSize) / 2, circleSize, circleSize); + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; + } + + // Circle 2 animation + animation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 0, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(deltaX, deltaY, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-deltaX, deltaY, 0)], + [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0, 0, 0)]]; + + // Draw circle 2 + { + CALayer *circle = [CALayer layer]; + + circle.backgroundColor = tintColor.CGColor; + circle.cornerRadius = circleSize / 2; + circle.frame = CGRectMake((layer.bounds.size.width - circleSize) / 2, (layer.bounds.size.height - circleSize) / 2, circleSize, circleSize); + [circle addAnimation:animation forKey:@"animation"]; + [layer addSublayer:circle]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.h new file mode 100644 index 0000000..32ad054 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.h @@ -0,0 +1,14 @@ +// +// DGActivityIndicatorCookieTerminatorAnimation.h +// DGActivityIndicatorExample +// +// Created by tripleCC on 15/6/28. +// Copyright (c) 2015å¹´ Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorCookieTerminatorAnimation : NSObject + + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.m new file mode 100644 index 0000000..3c061c1 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.m @@ -0,0 +1,82 @@ +// +// DGActivityIndicatorCookieTerminatorAnimation.m +// DGActivityIndicatorExample +// +// Created by tripleCC on 15/6/28. +// Copyright (c) 2015å¹´ Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorCookieTerminatorAnimation.h" + +@implementation DGActivityIndicatorCookieTerminatorAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat cookieTerminatorSize = ceilf(size.width / 3.0f); + CGFloat oX = (layer.bounds.size.width - size.width) / 2.0f; + CGFloat oY = layer.bounds.size.height / 2.0f; + CGPoint cookieTerminatorCenter = CGPointMake(oX, oY); + + UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:cookieTerminatorCenter radius:cookieTerminatorSize startAngle:M_PI_4 endAngle:M_PI * 1.75f clockwise:YES]; + [path addLineToPoint:cookieTerminatorCenter]; + [path closePath]; + + CAShapeLayer *cookieTerminatorLayer = [CAShapeLayer layer]; + cookieTerminatorLayer.anchorPoint = CGPointMake(0.5f, 0.5f); + cookieTerminatorLayer.fillColor = tintColor.CGColor; + cookieTerminatorLayer.path = path.CGPath; + [layer addSublayer:cookieTerminatorLayer]; + + path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(0.0f, 0.0f) radius:cookieTerminatorSize startAngle:M_PI_2 endAngle:M_PI * 1.5f clockwise:YES]; + [path closePath]; + for (int i = 0; i < 2; i++) { + CAShapeLayer *jawLayer = [CAShapeLayer layer]; + jawLayer.path = path.CGPath; + jawLayer.fillColor = tintColor.CGColor; + jawLayer.position = cookieTerminatorCenter; + jawLayer.anchorPoint = CGPointMake(0.5f, 0.5f); + jawLayer.opacity = 1.0f; + jawLayer.transform = CATransform3DMakeRotation((1.0f - 2.0f * i) * M_PI_4, 0.0f, 0.0f, 1.0f); + + CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; + transformAnimation.removedOnCompletion = NO; + transformAnimation.beginTime = beginTime; + transformAnimation.duration = 0.3f; + transformAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation((1.0f - 2.0f * i) * M_PI_4, 0.0f, 0.0f, 1.0f)]; + transformAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation((1.0f - 2.0f * i) * M_PI_2, 0.0f, 0.0f, 1.0f)]; + transformAnimation.autoreverses = YES; + transformAnimation.repeatCount = HUGE_VALF; + transformAnimation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]; + + [layer addSublayer:jawLayer]; + [jawLayer addAnimation:transformAnimation forKey:@"animation"]; + } + + CGFloat cookieSize = ceilf(size.width / 6.0f); + CGFloat cookiePadding = cookieSize * 2.0f; + for (int i = 0; i < 3; i++) { + CALayer *cookieLayer = [CALayer layer]; + cookieLayer.frame = CGRectMake(cookieTerminatorCenter.x + (cookieSize + cookiePadding) * 3.0f - cookieTerminatorSize, oY - cookieSize / 2.0f, cookieSize, cookieSize); + cookieLayer.backgroundColor = tintColor.CGColor; + cookieLayer.anchorPoint = CGPointMake(0.5f, 0.5f); + cookieLayer.opacity = 1.0f; + cookieLayer.cornerRadius = cookieSize / 2.0f; + + CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; + transformAnimation.duration = 1.8f; + transformAnimation.beginTime = beginTime - (i * transformAnimation.duration / 3.0f); + transformAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f)]; + transformAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-3.0f * (cookieSize + cookiePadding), 0.0f, 0.0f)]; + transformAnimation.repeatCount = HUGE_VALF; + transformAnimation.removedOnCompletion = NO; + transformAnimation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionLinear]; + + [layer addSublayer:cookieLayer]; + [cookieLayer addAnimation:transformAnimation forKey:@"animation"]; + } +} +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.h new file mode 100644 index 0000000..4897a2d --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorDoubleBounceAnimation.h +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorDoubleBounceAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.m new file mode 100644 index 0000000..c78157c --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.m @@ -0,0 +1,51 @@ +// +// DGActivityIndicatorDoubleBounceAnimation.m +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorDoubleBounceAnimation.h" + +@implementation DGActivityIndicatorDoubleBounceAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat oX = (layer.bounds.size.width - size.width) / 2.0f; + CGFloat oY = (layer.bounds.size.height - size.height) / 2.0f; + for (int i = 0; i < 2; i++) { + CALayer *circle = [CALayer layer]; + circle.frame = CGRectMake(oX, oY, size.width, size.height); + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.opacity = 0.5f; + circle.cornerRadius = size.height / 2.0f; + circle.transform = CATransform3DMakeScale(0.0f, 0.0f, 0.0f); + circle.backgroundColor = tintColor.CGColor; + + CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + transformAnimation.removedOnCompletion = NO; + transformAnimation.repeatCount = HUGE_VALF; + transformAnimation.duration = 2.0f; + transformAnimation.beginTime = beginTime - (1.0f * i); + transformAnimation.keyTimes = @[@(0.0f), @(0.5f), @(1.0f)]; + + transformAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; + + transformAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0f, 0.0f, 0.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 0.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0f, 0.0f, 0.0f)]]; + + [layer addSublayer:circle]; + [circle addAnimation:transformAnimation forKey:@"animation"]; + } + +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.h new file mode 100644 index 0000000..f87c3f2 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorFiveDotsAnimation.h +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorFiveDotsAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.m new file mode 100644 index 0000000..822f10c --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.m @@ -0,0 +1,99 @@ +// +// DGActivityIndicatorFiveDotsAnimation.m +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorFiveDotsAnimation.h" + +@implementation DGActivityIndicatorFiveDotsAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat circleSize = size.width / 5.0f; + + CGFloat oX = (layer.bounds.size.width - circleSize * 5) / 2.0f; + CGFloat oY = (layer.bounds.size.height - circleSize) / 2.0f; + for (int i = 0; i < 3; i++) { + CALayer *circle = [CALayer layer]; + circle.frame = CGRectMake(oX + circleSize * 2 * i, oY, circleSize, circleSize); + circle.backgroundColor = tintColor.CGColor; + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.opacity = 1.0f; + circle.cornerRadius = circle.bounds.size.height / 2.0f; + + CATransform3D t1 = CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f); + t1 = CATransform3DScale(t1, 1.0f, 1.0f, 0.0f); + + CATransform3D t2 = CATransform3DMakeTranslation(0.0f, -2 * circleSize, 0.0f); + t2 = CATransform3DScale(t2, 1.0f, 1.0f, 0.0f); + + CATransform3D t3 = CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f); + t3 = CATransform3DScale(t3, 0.3f, 0.3f, 0.0f); + + CATransform3D t4 = CATransform3DMakeTranslation(0.0f, 2 * circleSize, 0.0f); + t4 = CATransform3DScale(t4, 1.0f, 1.0f, 0.0f); + + CATransform3D t5 = CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f); + t5 = CATransform3DScale(t5, 1.f, 1.0f, 0.0f); + + CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + transformAnimation.values = @[[NSValue valueWithCATransform3D:t1], + [NSValue valueWithCATransform3D:t2], + [NSValue valueWithCATransform3D:t3], + [NSValue valueWithCATransform3D:t4], + [NSValue valueWithCATransform3D:t5]]; + transformAnimation.removedOnCompletion = NO; + transformAnimation.beginTime = beginTime; + transformAnimation.repeatCount = HUGE_VALF; + transformAnimation.duration = 1.0f; + transformAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + + [layer addSublayer:circle]; + [circle addAnimation:transformAnimation forKey:@"animation"]; + } + + for (int i = 0; i < 2; i++) { + CALayer *circle = [CALayer layer]; + circle.frame = CGRectMake((layer.bounds.size.width - circleSize * 5) / 2.0f + circleSize + circleSize * 2 * i, (layer.bounds.size.height - circleSize) / 2.0f, circleSize, circleSize); + circle.backgroundColor = tintColor.CGColor; + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.opacity = 1.0f; + circle.cornerRadius = circle.bounds.size.height / 2.0f; + + CATransform3D t1 = CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f); + t1 = CATransform3DScale(t1, 0.3f, 0.3f, 0.0f); + + CATransform3D t2 = CATransform3DMakeTranslation(0.0f, 2 * circleSize, 0.0f); + t2 = CATransform3DScale(t2, 1.0f, 1.0f, 0.0f); + + CATransform3D t3 = CATransform3DMakeTranslation(0.0f, -2 * circleSize, 0.0f); + t3 = CATransform3DScale(t3, 1.f, 1.0f, 0.0f); + + CATransform3D t4 = CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f); + t4 = CATransform3DScale(t4, 0.3f, 0.3f, 0.0f); + + CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + transformAnimation.values = @[[NSValue valueWithCATransform3D:t1], + [NSValue valueWithCATransform3D:t2], + [NSValue valueWithCATransform3D:t3], + [NSValue valueWithCATransform3D:t4]]; + transformAnimation.keyTimes = @[@(0.0f), @(0.25f), @(0.75f), @(1.0f)]; + transformAnimation.removedOnCompletion = NO; + transformAnimation.beginTime = beginTime; + transformAnimation.repeatCount = HUGE_VALF; + transformAnimation.duration = 1.0f; + transformAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + + [layer addSublayer:circle]; + [circle addAnimation:transformAnimation forKey:@"animation"]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.h new file mode 100644 index 0000000..d22eeb0 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorLineScaleAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorLineScaleAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.m new file mode 100644 index 0000000..745f5b2 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.m @@ -0,0 +1,43 @@ +// +// DGActivityIndicatorLineScaleAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorLineScaleAnimation.h" + +@implementation DGActivityIndicatorLineScaleAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 1.0f; + NSArray *beginTimes = @[@0.1f, @0.2f, @0.3f, @0.4f, @0.5f]; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.2f :0.68f :0.18f :1.08f]; + CGFloat lineSize = size.width / 9; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + + // Animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale.y"]; + + animation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + animation.values = @[@1.0f, @0.4f, @1.0f]; + animation.timingFunctions = @[timingFunction, timingFunction]; + animation.repeatCount = HUGE_VALF; + animation.duration = duration; + + for (int i = 0; i < 5; i++) { + CAShapeLayer *line = [CAShapeLayer layer]; + UIBezierPath *linePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, lineSize, size.height) cornerRadius:lineSize / 2]; + + animation.beginTime = [beginTimes[i] floatValue]; + line.fillColor = tintColor.CGColor; + line.path = linePath.CGPath; + [line addAnimation:animation forKey:@"animation"]; + line.frame = CGRectMake(x + lineSize * 2 * i, y, lineSize, size.height); + [layer addSublayer:line]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.h new file mode 100644 index 0000000..44ef05e --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorLineScalePartyAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorLineScalePartyAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.m new file mode 100644 index 0000000..287857b --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.m @@ -0,0 +1,43 @@ +// +// DGActivityIndicatorLineScalePartyAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorLineScalePartyAnimation.h" + +@implementation DGActivityIndicatorLineScalePartyAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSArray *durations = @[@1.26f, @0.43f, @1.01f, @0.73f]; + NSArray *beginTimes = @[@0.77f, @0.29f, @0.28f, @0.74f]; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]; + CGFloat lineSize = size.width / 7; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + + // Animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + + animation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + animation.values = @[@1.0f, @0.5f, @1.0f]; + animation.timingFunctions = @[timingFunction, timingFunction]; + animation.repeatCount = HUGE_VALF; + + for (int i = 0; i < 4; i++) { + CAShapeLayer *line = [CAShapeLayer layer]; + UIBezierPath *linePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, lineSize, size.height) cornerRadius:lineSize / 2]; + + animation.duration = [durations[i] floatValue]; + animation.beginTime = [beginTimes[i] floatValue]; + line.fillColor = tintColor.CGColor; + line.path = linePath.CGPath; + [line addAnimation:animation forKey:@"animation"]; + line.frame = CGRectMake(x + lineSize * 2 * i, y, lineSize, size.height); + [layer addSublayer:line]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.h new file mode 100644 index 0000000..52bf980 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorLineScalePulseOutAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorLineScalePulseOutAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.m new file mode 100644 index 0000000..b8dceb4 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.m @@ -0,0 +1,43 @@ +// +// DGActivityIndicatorLineScalePulseOutAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorLineScalePulseOutAnimation.h" + +@implementation DGActivityIndicatorLineScalePulseOutAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 1.0f; + NSArray *beginTimes = @[@0.4f, @0.2f, @0.0f, @0.2f, @0.4f]; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.85f :0.25f :0.37f :0.85f]; + CGFloat lineSize = size.width / 9; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + + // Animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale.y"]; + + animation.keyTimes = @[@0.0f, @0.5f, @1.0f]; + animation.values = @[@1.0f, @0.4f, @1.0f]; + animation.timingFunctions = @[timingFunction, timingFunction]; + animation.repeatCount = HUGE_VALF; + animation.duration = duration; + + for (int i = 0; i < 5; i++) { + CAShapeLayer *line = [CAShapeLayer layer]; + UIBezierPath *linePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, lineSize, size.height) cornerRadius:lineSize / 2]; + + animation.beginTime = [beginTimes[i] floatValue]; + line.fillColor = tintColor.CGColor; + line.path = linePath.CGPath; + [line addAnimation:animation forKey:@"animation"]; + line.frame = CGRectMake(x + lineSize * 2 * i, y, lineSize, size.height); + [layer addSublayer:line]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.h new file mode 100644 index 0000000..9849fe4 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorLineScalePulseOutRapidAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorLineScalePulseOutRapidAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.m new file mode 100644 index 0000000..93916a3 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.m @@ -0,0 +1,43 @@ +// +// DGActivityIndicatorLineScalePulseOutRapidAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorLineScalePulseOutRapidAnimation.h" + +@implementation DGActivityIndicatorLineScalePulseOutRapidAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 0.9f; + NSArray *beginTimes = @[@0.5f, @0.25f, @0.0f, @0.25f, @0.5f]; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.11f :0.49f :0.38f :0.78f]; + CGFloat lineSize = size.width / 9; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + + // Animation + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale.y"]; + + animation.keyTimes = @[@0.0f, @0.8f, @0.9f]; + animation.values = @[@1.0f, @0.3f, @1.0f]; + animation.timingFunctions = @[timingFunction, timingFunction]; + animation.repeatCount = HUGE_VALF; + animation.duration = duration; + + for (int i = 0; i < 5; i++) { + CAShapeLayer *line = [CAShapeLayer layer]; + UIBezierPath *linePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, lineSize, size.height) cornerRadius:lineSize / 2]; + + animation.beginTime = [beginTimes[i] floatValue]; + line.fillColor = tintColor.CGColor; + line.path = linePath.CGPath; + [line addAnimation:animation forKey:@"animation"]; + line.frame = CGRectMake(x + lineSize * 2 * i, y, lineSize, size.height); + [layer addSublayer:line]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.h new file mode 100644 index 0000000..b2984dc --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorNineDotsAnimation.h +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorNineDotsAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.m new file mode 100644 index 0000000..026a5a5 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.m @@ -0,0 +1,62 @@ +// +// DGActivityIndicatorNineDotsAnimation.m +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorNineDotsAnimation.h" + +@implementation DGActivityIndicatorNineDotsAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat circleSize = size.width / 4.0f; + CGFloat circlePadding = circleSize / 2.0f; + + CGFloat oX = (layer.bounds.size.width - circleSize * 3 - circlePadding * 2) / 2.0f; + CGFloat oY = (layer.bounds.size.height - circleSize * 3 - circlePadding * 2) / 2.0f; + + NSArray *timeOffsets = @[@(0.11f), @(0.42f), @(0.0f), + @(0.65f), @(0.48f), @(0.2f), + @(0.63f), @(0.95f), @(0.62f)]; + NSArray *durations = @[@(0.72f), @(1.02f), @(1.28f), + @(1.42f), @(1.45f), @(1.18f), + @(0.87f), @(1.45f), @(1.06f)]; + + for (int i = 0; i < MIN(timeOffsets.count, durations.count); i++) { + CALayer *circle = [CALayer layer]; + circle.frame = CGRectMake(oX + (circleSize + circlePadding) * (i % 3), oY + (circleSize + circlePadding) * (int)(i / 3), circleSize, circleSize); + circle.backgroundColor = tintColor.CGColor; + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.opacity = 1.0f; + circle.cornerRadius = circle.bounds.size.height / 2.0f; + + CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + transformAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.5f, 0.5f, 0.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 0.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.5f, 0.5f, 0.0f)]]; + + CAKeyframeAnimation *opacityAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + opacityAnimation.values = @[@(0.5f), @(1.0f), @(0.5f)]; + + CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; + animationGroup.removedOnCompletion = NO; + animationGroup.beginTime = beginTime; + animationGroup.repeatCount = HUGE_VALF; + animationGroup.duration = [durations[i] doubleValue]; + animationGroup.animations = @[transformAnimation, opacityAnimation]; + animationGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + animationGroup.timeOffset = [timeOffsets[i] doubleValue]; + + [layer addSublayer:circle]; + [circle addAnimation:animationGroup forKey:@"animation"]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.h new file mode 100644 index 0000000..0b051cb --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.h @@ -0,0 +1,14 @@ +// +// DGActivityIndicatorRotatingTrigonsAnimation.h +// DGActivityIndicatorExample +// +// Created by tripleCC on 15/6/26. +// Copyright (c) 2015å¹´ Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorRotatingSandglassAnimation : NSObject + + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.m new file mode 100644 index 0000000..ae9cc3b --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.m @@ -0,0 +1,62 @@ +// +// DGActivityIndicatorRotatingTrigonsAnimation.m +// DGActivityIndicatorExample +// +// Created by tripleCC on 15/6/26. +// Copyright (c) 2015å¹´ Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorRotatingSandglassAnimation.h" + +@implementation DGActivityIndicatorRotatingSandglassAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat circleSize = size.width / 4.0f;; + CGFloat oX = (layer.bounds.size.width - size.width) / 2.0f; + CGFloat oY = (layer.bounds.size.height - size.width) / 2.0f; + + for (int i = 0; i < 2; i++) { + CALayer *circle = [CALayer layer]; + circle.frame = CGRectMake(oX + i * (size.width - 2.0f * circleSize), (size.height - circleSize) * i + oY, circleSize, circleSize); + circle.cornerRadius = circle.bounds.size.height / 2.0f; + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.transform = CATransform3DMakeScale(0.0f, 0.0f, 0.0f); + circle.backgroundColor = tintColor.CGColor; + circle.shouldRasterize = YES; + circle.rasterizationScale = [[UIScreen mainScreen] scale]; + + CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + transformAnimation.removedOnCompletion = NO; + transformAnimation.repeatCount = HUGE_VALF; + transformAnimation.duration = 0.8f; + transformAnimation.beginTime = beginTime; + transformAnimation.keyTimes = @[@(0.0f), @(1.0f / 3.0f), @(2.0f / 3.0f), @(1.0)]; + + transformAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; + + CATransform3D t1 = CATransform3DMakeTranslation((1.0f - 2.0f * i) * (size.width - 2.0f * circleSize), 0.0f, 0.0f); + + CATransform3D t2 = CATransform3DMakeTranslation((1.0f - 2.0f * i) * (size.width - 2.0f * circleSize) / 2.0f, (1.0f - 2.0f * i) * (size.height - circleSize) / 2.0f, 0.0f); + + CATransform3D t3 = CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f); + + + transformAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DIdentity], + [NSValue valueWithCATransform3D:t1], + [NSValue valueWithCATransform3D:t2], + [NSValue valueWithCATransform3D:t3]]; + + [layer addSublayer:circle]; + [circle addAnimation:transformAnimation forKey:@"animation"]; + } +} +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.h new file mode 100644 index 0000000..617b093 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorRotatingSquaresAnimation.h +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorRotatingSquaresAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.m new file mode 100644 index 0000000..6be4a7a --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.m @@ -0,0 +1,73 @@ +// +// DGActivityIndicatorRotatingSquaresAnimation.m +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorRotatingSquaresAnimation.h" + +static CGFloat degreesToRadians(CGFloat degrees) { return (degrees) / 180.0 * M_PI; }; + +@implementation DGActivityIndicatorRotatingSquaresAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat squareSize = floor(size.width / 4.0f); + + CGFloat oX = (layer.bounds.size.width - size.width) / 2.0f; + CGFloat oY = (layer.bounds.size.height - size.height) / 2.0f; + for (int i = 0; i < 2; i++) { + CALayer *square = [CALayer layer]; + square.frame = CGRectMake(oX, oY, squareSize, squareSize); + square.anchorPoint = CGPointMake(0.5f, 0.5f); + square.backgroundColor = tintColor.CGColor; + square.shouldRasterize = YES; + square.rasterizationScale = [[UIScreen mainScreen] scale]; + + CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + transformAnimation.removedOnCompletion = NO; + transformAnimation.duration = 1.6f; + transformAnimation.beginTime = beginTime - (i * transformAnimation.duration / 2.0f); + transformAnimation.repeatCount = HUGE_VALF; + + transformAnimation.keyTimes = @[@(0.0f), @(0.25f), @(0.50f), @(0.75f), @(1.0f)]; + transformAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; + + CATransform3D t1 = CATransform3DMakeTranslation(size.width - squareSize, 0.0f, 0.0f); + t1 = CATransform3DRotate(t1, degreesToRadians(-90.0f), 0.0f, 0.0f, 1.0f); + t1 = CATransform3DScale(t1, 0.5f, 0.5f, 1.0f); + + CATransform3D t2 = CATransform3DMakeTranslation(size.width - squareSize, size.height - squareSize, 0.0f); + t2 = CATransform3DRotate(t2, degreesToRadians(-180.0f), 0.0f, 0.0f, 1.0f); + t2 = CATransform3DScale(t2, 1.0, 1.0, 1.0f); + + CATransform3D t3 = CATransform3DMakeTranslation(0.0f, size.height - squareSize, 0.0f); + t3 = CATransform3DRotate(t3, degreesToRadians(-270.0f), 0.0f, 0.0f, 1.0f); + t3 = CATransform3DScale(t3, 0.5f, 0.5f, 1.0f); + + CATransform3D t4 = CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f); + t4 = CATransform3DRotate(t4, degreesToRadians(-360.0f), 0.0f, 0.0f, 1.0f); + t4 = CATransform3DScale(t4, 1.0, 1.0, 1.0f); + + transformAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DIdentity], + [NSValue valueWithCATransform3D:t1], + [NSValue valueWithCATransform3D:t2], + [NSValue valueWithCATransform3D:t3], + [NSValue valueWithCATransform3D:t4]]; + + [layer addSublayer:square]; + [square addAnimation:transformAnimation forKey:@"animation"]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.h new file mode 100644 index 0000000..0a538c0 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.h @@ -0,0 +1,14 @@ +// +// DGActivityIndicatorRotatingTrigonsAnimation.h +// DGActivityIndicatorExample +// +// Created by tripleCC on 15/6/26. +// Copyright (c) 2015å¹´ Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorRotatingTrigonAnimation : NSObject + + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.m new file mode 100644 index 0000000..810a2d4 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.m @@ -0,0 +1,68 @@ +// +// DGActivityIndicatorRotatingTrigonsAnimation.m +// DGActivityIndicatorExample +// +// Created by tripleCC on 15/6/26. +// Copyright (c) 2015å¹´ Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorRotatingTrigonAnimation.h" + +@implementation DGActivityIndicatorRotatingTrigonAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat circleSize = size.width / 4.0f;; + CGFloat oX = (layer.bounds.size.width - size.width) / 2.0f; + CGFloat oY = (layer.bounds.size.height - size.width) / 2.0f; + + UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, circleSize, circleSize)]; + CGPoint pointA = CGPointMake(oX + size.width / 2.0f, oY + circleSize / 2.0f); + CGPoint pointB = CGPointMake(oX + circleSize / 2.0f, oY + circleSize / 2.0f + sqrtf(powf((size.width - circleSize), 2) - powf((size.width / 2.0f - circleSize / 2.0f), 2))); + CGPoint pointC = CGPointMake(oX + size.width - circleSize / 2.0f, pointB.y); + + for (int i = 0; i < 3; i++) { + CAShapeLayer *circle = [CAShapeLayer layer]; + circle.path = path.CGPath; + circle.fillColor = [UIColor clearColor].CGColor; + circle.strokeColor = tintColor.CGColor; + circle.bounds = CGRectMake(0, 0, circleSize, circleSize); + circle.position = pointA; + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.transform = CATransform3DMakeScale(0.0f, 0.0f, 0.0f); + circle.shouldRasterize = YES; + circle.rasterizationScale = [[UIScreen mainScreen] scale]; + + CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + transformAnimation.removedOnCompletion = NO; + transformAnimation.repeatCount = HUGE_VALF; + transformAnimation.duration = 2.0f; + transformAnimation.beginTime = beginTime - (i * transformAnimation.duration / 3.0f);; + transformAnimation.keyTimes = @[@(0.0f), @(1.0f / 3.0f), @(2.0f / 3.0f), @(1.0)]; + + transformAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; + + CATransform3D t1 = CATransform3DMakeTranslation(pointB.x - pointA.x, pointB.y - pointA.y, 0.0f); + + CATransform3D t2 = CATransform3DMakeTranslation(pointC.x - pointA.x, pointC.y - pointA.y, 0.0f); + + CATransform3D t3 = CATransform3DMakeTranslation(0.0f, 0.0f, 0.0f); + + transformAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DIdentity], + [NSValue valueWithCATransform3D:t1], + [NSValue valueWithCATransform3D:t2], + [NSValue valueWithCATransform3D:t3]]; + + [layer addSublayer:circle]; + [circle addAnimation:transformAnimation forKey:@"animation"]; + } +} +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.h new file mode 100644 index 0000000..13ccffe --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorThreeDotsAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 6/15/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorThreeDotsAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.m new file mode 100644 index 0000000..c9f0bd0 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.m @@ -0,0 +1,59 @@ +// +// DGActivityIndicatorThreeDotsAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 6/15/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorThreeDotsAnimation.h" + +@implementation DGActivityIndicatorThreeDotsAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + NSTimeInterval duration = 0.5f; + + CGFloat circleSize = size.width / 4.0f; + CGFloat circlePadding = circleSize / 2.0f; + + CGFloat oX = (layer.bounds.size.width - circleSize * 3 - circlePadding * 2) / 2.0f; + CGFloat oY = (layer.bounds.size.height - circleSize * 1) / 2.0f; + + for (int i = 0; i < 3; i++) { + CALayer *circle = [CALayer layer]; + + circle.frame = CGRectMake(oX + (circleSize + circlePadding) * (i % 3), oY, circleSize, circleSize); + circle.backgroundColor = tintColor.CGColor; + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.opacity = 1.0f; + circle.cornerRadius = circle.bounds.size.width / 2.0f; + + CAKeyframeAnimation *tranformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + + tranformAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.5f, 0.5f, 0.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 0.0f)]]; + + CAKeyframeAnimation *opacityAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + + opacityAnimation.values = @[@(0.25f), @(1.0f)]; + + CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; + + animationGroup.removedOnCompletion = NO; + animationGroup.autoreverses = YES; + animationGroup.beginTime = beginTime; + animationGroup.repeatCount = HUGE_VALF; + animationGroup.duration = duration; + animationGroup.animations = @[tranformAnimation, opacityAnimation]; + animationGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + + [layer addSublayer:circle]; + [circle addAnimation:animationGroup forKey:@"animation"]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.h new file mode 100644 index 0000000..57f9fe9 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorTriangleSkewSpinAnimation.h +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorTriangleSkewSpinAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.m new file mode 100644 index 0000000..96f532f --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.m @@ -0,0 +1,58 @@ +// +// DGActivityIndicatorTriangleSkewSpinAnimation.m +// DGActivityIndicatorExample +// +// Created by Nguyen Vinh on 7/20/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorTriangleSkewSpinAnimation.h" + +@implementation DGActivityIndicatorTriangleSkewSpinAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + CGFloat duration = 3.0f; + CGFloat x = (layer.bounds.size.width - size.width) / 2; + CGFloat y = (layer.bounds.size.height - size.height) / 2; + CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.09f :0.57f :0.49f :0.9f]; + + // Rotation x animation + CAKeyframeAnimation *rotationXAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.x"]; + + rotationXAnimation.duration = duration; + rotationXAnimation.keyTimes = @[@0.0f, @0.25f, @0.5f, @0.75f, @1.0f]; + rotationXAnimation.values = @[@0.0f, @M_PI, @M_PI, @0.0f, @0.0f]; + rotationXAnimation.timingFunctions = @[timingFunction, timingFunction, timingFunction, timingFunction]; + + // Rotation x animation + CAKeyframeAnimation *rotationYAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.y"]; + + rotationYAnimation.duration = duration; + rotationYAnimation.keyTimes = @[@0.0f, @0.25f, @0.5f, @0.75f, @1.0f]; + rotationYAnimation.values = @[@0.0f, @0.0f, @M_PI, @M_PI, @0.0f]; + rotationYAnimation.timingFunctions = @[timingFunction, timingFunction, timingFunction, timingFunction]; + + // Animation + CAAnimationGroup *animation = [CAAnimationGroup animation]; + + animation.animations = @[rotationXAnimation, rotationYAnimation]; + animation.duration = duration; + animation.repeatCount = HUGE_VALF; + + // Draw triangle + CAShapeLayer *triangle = [CAShapeLayer layer]; + UIBezierPath *trianglePath = [UIBezierPath bezierPath]; + CGFloat offsetY = size.height / 4; + + [trianglePath moveToPoint:CGPointMake(0, size.height - offsetY)]; + [trianglePath addLineToPoint:CGPointMake(size.width / 2, size.height / 2 - offsetY)]; + [trianglePath addLineToPoint:CGPointMake(size.width, size.height - offsetY)]; + [trianglePath closePath]; + triangle.fillColor = tintColor.CGColor; + triangle.path = trianglePath.CGPath; + [triangle addAnimation:animation forKey:@"animation"]; + triangle.frame = CGRectMake(x, y, size.width, size.height); + [layer addSublayer:triangle]; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.h new file mode 100644 index 0000000..ce56a32 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorTriplePulseAnimation.h +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorTriplePulseAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.m new file mode 100644 index 0000000..dfb9d24 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.m @@ -0,0 +1,50 @@ +// +// DGActivityIndicatorTriplePulseAnimation.m +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorTriplePulseAnimation.h" + +@implementation DGActivityIndicatorTriplePulseAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat oX = (layer.bounds.size.width - size.width) / 2.0f; + CGFloat oY = (layer.bounds.size.height - size.height) / 2.0f; + for (int i = 0; i < 4; i++) { + CALayer *circle = [CALayer layer]; + circle.frame = CGRectMake(oX, oY, size.width, size.height); + circle.backgroundColor = tintColor.CGColor; + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.opacity = 0.8f; + circle.cornerRadius = circle.bounds.size.height / 2.0f; + circle.transform = CATransform3DMakeScale(0.0f, 0.0f, 0.0f); + + CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; + transformAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0f, 0.0f, 0.0f)]; + transformAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 0.0f)]; + + CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; + opacityAnimation.fromValue = @(0.8f); + opacityAnimation.toValue = @(0.0f); + + CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; + animationGroup.removedOnCompletion = NO; + animationGroup.beginTime = beginTime + i * 0.2f; + animationGroup.repeatCount = HUGE_VALF; + animationGroup.duration = 1.2f; + animationGroup.animations = @[transformAnimation, opacityAnimation]; + + [layer addSublayer:circle]; + [circle addAnimation:animationGroup forKey:@"animation"]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.h new file mode 100644 index 0000000..61bc2c5 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.h @@ -0,0 +1,12 @@ +// +// DGActivityIndicatorTripleRingsPulseAnimation.h +// DGActivityIndicatorExample +// +// Created by tripleCC on 15/6/28. +// Copyright (c) 2015å¹´ Danil Gontovnik. All rights reserved. +// +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorTripleRingsAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.m new file mode 100644 index 0000000..d2b56a7 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.m @@ -0,0 +1,55 @@ +// +// DGActivityIndicatorTripleRingsPulseAnimation.m +// DGActivityIndicatorExample +// +// Created by tripleCC on 15/6/28. +// Copyright (c) 2015å¹´ Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorTripleRingsAnimation.h" + +@implementation DGActivityIndicatorTripleRingsAnimation + +#pragma mark - +#pragma mark DGActivityIndicatorAnimation Protocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + + UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0.0f, 0.0f, size.width, size.width)]; + CGFloat oX = (layer.bounds.size.width - size.width) / 2.0f; + CGFloat oY = (layer.bounds.size.height - size.height) / 2.0f; + for (int i = 0; i < 3; i++) { + CAShapeLayer *circle = [CAShapeLayer layer]; + circle.path = path.CGPath; + circle.fillColor = [UIColor clearColor].CGColor; + circle.strokeColor = tintColor.CGColor; + circle.frame = CGRectMake(oX, oY, size.width, size.height); + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.opacity = 1.0f; + circle.transform = CATransform3DMakeScale(0.0f, 0.0f, 0.0f); + + CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; + transformAnimation.duration = 2.0f - i * 0.4f; + transformAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1f, 0.1f, 0.0f)]; + transformAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 0.0f)]; + transformAnimation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut]; + + CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; + opacityAnimation.duration = transformAnimation.duration; + opacityAnimation.fromValue = @(1.0f); + opacityAnimation.toValue = @(0.8f); + opacityAnimation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut]; + + CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; + animationGroup.removedOnCompletion = NO; + animationGroup.beginTime = beginTime + i * 0.4f; + animationGroup.repeatCount = HUGE_VALF; + animationGroup.duration = 2.0f; + animationGroup.animations = @[transformAnimation, opacityAnimation]; + + [layer addSublayer:circle]; + [circle addAnimation:animationGroup forKey:@"animation"]; + } +} +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.h new file mode 100644 index 0000000..5a80f51 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.h @@ -0,0 +1,13 @@ +// +// DGActivityIndicatorTwoDotsAnimation.h +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/24/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorAnimationProtocol.h" + +@interface DGActivityIndicatorTwoDotsAnimation : NSObject + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.m new file mode 100644 index 0000000..b26c81d --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.m @@ -0,0 +1,48 @@ +// +// DGActivityIndicatorTwoDotsAnimation.m +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/24/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorTwoDotsAnimation.h" + +@implementation DGActivityIndicatorTwoDotsAnimation + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor { + NSTimeInterval beginTime = CACurrentMediaTime(); + + CGFloat circleSize = size.width * 0.92f; + CGFloat oX = (layer.bounds.size.width - size.width) / 2.0f; + CGFloat oY = (layer.bounds.size.height - circleSize) / 2.0f; + for (int i = 0; i < 2; i++) { + CALayer *circle = [CALayer layer]; + CGFloat offset = circleSize / 2.0f * i; + circle.frame = CGRectMake((offset + size.width - circleSize) * i + oX, oY, circleSize, circleSize); + circle.cornerRadius = circle.bounds.size.height / 2.0f; + circle.anchorPoint = CGPointMake(0.5f, 0.5f); + circle.transform = CATransform3DMakeScale(0.0f, 0.0f, 0.0f); + circle.backgroundColor = tintColor.CGColor; + + CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; + transformAnimation.removedOnCompletion = NO; + transformAnimation.repeatCount = HUGE_VALF; + transformAnimation.duration = 1.8f; + transformAnimation.beginTime = beginTime - (transformAnimation.duration / 2.0f * i); + transformAnimation.keyTimes = @[@(0.0), @(0.5), @(1.0)]; + + transformAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut], + [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; + + transformAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0f, 0.0f, 0.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 0.0f)], + [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.0f, 0.0f, 0.0f)]]; + + [layer addSublayer:circle]; + [circle addAnimation:transformAnimation forKey:@"animation"]; + } +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorAnimationProtocol.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorAnimationProtocol.h new file mode 100644 index 0000000..624bdb2 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorAnimationProtocol.h @@ -0,0 +1,16 @@ +// +// DGActivityIndicatorAnimationProtocol.h +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import +#import + +@protocol DGActivityIndicatorAnimationProtocol + +- (void)setupAnimationInLayer:(CALayer *)layer withSize:(CGSize)size tintColor:(UIColor *)tintColor; + +@end \ No newline at end of file diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorView.h b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorView.h new file mode 100644 index 0000000..7901b1e --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorView.h @@ -0,0 +1,62 @@ +// +// DGActivityIndicatorView.h +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import + +typedef NS_ENUM(NSUInteger, DGActivityIndicatorAnimationType) { + DGActivityIndicatorAnimationTypeNineDots, + DGActivityIndicatorAnimationTypeTriplePulse, + DGActivityIndicatorAnimationTypeFiveDots, + DGActivityIndicatorAnimationTypeRotatingSquares, + DGActivityIndicatorAnimationTypeDoubleBounce, + DGActivityIndicatorAnimationTypeTwoDots, + DGActivityIndicatorAnimationTypeThreeDots, + DGActivityIndicatorAnimationTypeBallPulse, + DGActivityIndicatorAnimationTypeBallClipRotate, + DGActivityIndicatorAnimationTypeBallClipRotatePulse, + DGActivityIndicatorAnimationTypeBallClipRotateMultiple, + DGActivityIndicatorAnimationTypeBallRotate, + DGActivityIndicatorAnimationTypeBallZigZag, + DGActivityIndicatorAnimationTypeBallZigZagDeflect, + DGActivityIndicatorAnimationTypeBallTrianglePath, + DGActivityIndicatorAnimationTypeBallScale, + DGActivityIndicatorAnimationTypeLineScale, + DGActivityIndicatorAnimationTypeLineScaleParty, + DGActivityIndicatorAnimationTypeBallScaleMultiple, + DGActivityIndicatorAnimationTypeBallPulseSync, + DGActivityIndicatorAnimationTypeBallBeat, + DGActivityIndicatorAnimationTypeLineScalePulseOut, + DGActivityIndicatorAnimationTypeLineScalePulseOutRapid, + DGActivityIndicatorAnimationTypeBallScaleRipple, + DGActivityIndicatorAnimationTypeBallScaleRippleMultiple, + DGActivityIndicatorAnimationTypeTriangleSkewSpin, + DGActivityIndicatorAnimationTypeBallGridBeat, + DGActivityIndicatorAnimationTypeBallGridPulse, + DGActivityIndicatorAnimationTypeRotatingSandglass, + DGActivityIndicatorAnimationTypeRotatingTrigons, + DGActivityIndicatorAnimationTypeTripleRings, + DGActivityIndicatorAnimationTypeCookieTerminator, + DGActivityIndicatorAnimationTypeBallSpinFadeLoader +}; + +@interface DGActivityIndicatorView : UIView + +- (id)initWithType:(DGActivityIndicatorAnimationType)type; +- (id)initWithType:(DGActivityIndicatorAnimationType)type tintColor:(UIColor *)tintColor; +- (id)initWithType:(DGActivityIndicatorAnimationType)type tintColor:(UIColor *)tintColor size:(CGFloat)size; + +@property (nonatomic) DGActivityIndicatorAnimationType type; +@property (nonatomic, strong) UIColor *tintColor; +@property (nonatomic) CGFloat size; + +@property (nonatomic, readonly) BOOL animating; + +- (void)startAnimating; +- (void)stopAnimating; + +@end diff --git a/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorView.m b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorView.m new file mode 100644 index 0000000..be3c37b --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/DGActivityIndicatorView/DGActivityIndicatorView.m @@ -0,0 +1,201 @@ +// +// DGActivityIndicatorView.m +// DGActivityIndicatorExample +// +// Created by Danil Gontovnik on 5/23/15. +// Copyright (c) 2015 Danil Gontovnik. All rights reserved. +// + +#import "DGActivityIndicatorView.h" + +#import "DGActivityIndicatorNineDotsAnimation.h" +#import "DGActivityIndicatorTriplePulseAnimation.h" +#import "DGActivityIndicatorFiveDotsAnimation.h" +#import "DGActivityIndicatorRotatingSquaresAnimation.h" +#import "DGActivityIndicatorDoubleBounceAnimation.h" +#import "DGActivityIndicatorTwoDotsAnimation.h" +#import "DGActivityIndicatorThreeDotsAnimation.h" +#import "DGActivityIndicatorBallPulseAnimation.h" +#import "DGActivityIndicatorBallClipRotateAnimation.h" +#import "DGActivityIndicatorBallClipRotatePulseAnimation.h" +#import "DGActivityIndicatorBallClipRotateMultipleAnimation.h" +#import "DGActivityIndicatorBallRotateAnimation.h" +#import "DGActivityIndicatorBallZigZagAnimation.h" +#import "DGActivityIndicatorBallZigZagDeflectAnimation.h" +#import "DGActivityIndicatorBallTrianglePathAnimation.h" +#import "DGActivityIndicatorBallScaleAnimation.h" +#import "DGActivityIndicatorLineScaleAnimation.h" +#import "DGActivityIndicatorLineScalePartyAnimation.h" +#import "DGActivityIndicatorBallScaleMultipleAnimation.h" +#import "DGActivityIndicatorBallPulseSyncAnimation.h" +#import "DGActivityIndicatorBallBeatAnimation.h" +#import "DGActivityIndicatorLineScalePulseOutAnimation.h" +#import "DGActivityIndicatorLineScalePulseOutRapidAnimation.h" +#import "DGActivityIndicatorBallScaleRippleAnimation.h" +#import "DGActivityIndicatorBallScaleRippleMultipleAnimation.h" +#import "DGActivityIndicatorTriangleSkewSpinAnimation.h" +#import "DGActivityIndicatorBallGridBeatAnimation.h" +#import "DGActivityIndicatorBallGridPulseAnimation.h" +#import "DGActivityIndicatorRotatingSandglassAnimation.h" +#import "DGActivityIndicatorRotatingTrigonAnimation.h" +#import "DGActivityIndicatorTripleRingsAnimation.h" +#import "DGActivityIndicatorCookieTerminatorAnimation.h" +#import "DGActivityIndicatorBallSpinFadeLoader.h" + +static const CGFloat kDGActivityIndicatorDefaultSize = 40.0f; + +@implementation DGActivityIndicatorView + +#pragma mark - +#pragma mark Constructors + +- (id)initWithType:(DGActivityIndicatorAnimationType)type { + return [self initWithType:type tintColor:[UIColor whiteColor] size:kDGActivityIndicatorDefaultSize]; +} + +- (id)initWithType:(DGActivityIndicatorAnimationType)type tintColor:(UIColor *)tintColor { + return [self initWithType:type tintColor:tintColor size:kDGActivityIndicatorDefaultSize]; +} + +- (id)initWithType:(DGActivityIndicatorAnimationType)type tintColor:(UIColor *)tintColor size:(CGFloat)size { + self = [super init]; + if (self) { + _type = type; + _size = size; + _tintColor = tintColor; + } + return self; +} + +#pragma mark - +#pragma mark Methods + +- (void)setupAnimation { + self.layer.sublayers = nil; + + id animation = [DGActivityIndicatorView activityIndicatorAnimationForAnimationType:_type]; + + if ([animation respondsToSelector:@selector(setupAnimationInLayer:withSize:tintColor:)]) { + [animation setupAnimationInLayer:self.layer withSize:CGSizeMake(_size, _size) tintColor:_tintColor]; + self.layer.speed = 0.0f; + } +} + +- (void)startAnimating { + if (!self.layer.sublayers) { + [self setupAnimation]; + } + self.layer.speed = 1.0f; + _animating = YES; +} + +- (void)stopAnimating { + self.layer.speed = 0.0f; + _animating = NO; +} + +#pragma mark - +#pragma mark Setters + +- (void)setType:(DGActivityIndicatorAnimationType)type { + if (_type != type) { + _type = type; + + [self setupAnimation]; + } +} + +- (void)setSize:(CGFloat)size { + if (_size != size) { + _size = size; + + [self setupAnimation]; + } +} + +- (void)setTintColor:(UIColor *)tintColor { + if (![_tintColor isEqual:tintColor]) { + _tintColor = tintColor; + + for (CALayer *sublayer in self.layer.sublayers) { + sublayer.backgroundColor = tintColor.CGColor; + } + } +} + +#pragma mark - +#pragma mark Getters + ++ (id)activityIndicatorAnimationForAnimationType:(DGActivityIndicatorAnimationType)type { + switch (type) { + case DGActivityIndicatorAnimationTypeNineDots: + return [[DGActivityIndicatorNineDotsAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeTriplePulse: + return [[DGActivityIndicatorTriplePulseAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeFiveDots: + return [[DGActivityIndicatorFiveDotsAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeRotatingSquares: + return [[DGActivityIndicatorRotatingSquaresAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeDoubleBounce: + return [[DGActivityIndicatorDoubleBounceAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeTwoDots: + return [[DGActivityIndicatorTwoDotsAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeThreeDots: + return [[DGActivityIndicatorThreeDotsAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallPulse: + return [[DGActivityIndicatorBallPulseAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallClipRotate: + return [[DGActivityIndicatorBallClipRotateAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallClipRotatePulse: + return [[DGActivityIndicatorBallClipRotatePulseAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallClipRotateMultiple: + return [[DGActivityIndicatorBallClipRotateMultipleAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallRotate: + return [[DGActivityIndicatorBallRotateAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallZigZag: + return [[DGActivityIndicatorBallZigZagAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallZigZagDeflect: + return [[DGActivityIndicatorBallZigZagDeflectAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallTrianglePath: + return [[DGActivityIndicatorBallTrianglePathAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallScale: + return [[DGActivityIndicatorBallScaleAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeLineScale: + return [[DGActivityIndicatorLineScaleAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeLineScaleParty: + return [[DGActivityIndicatorLineScalePartyAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallScaleMultiple: + return [[DGActivityIndicatorBallScaleMultipleAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallPulseSync: + return [[DGActivityIndicatorBallPulseSyncAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallBeat: + return [[DGActivityIndicatorBallBeatAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeLineScalePulseOut: + return [[DGActivityIndicatorLineScalePulseOutAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeLineScalePulseOutRapid: + return [[DGActivityIndicatorLineScalePulseOutRapidAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallScaleRipple: + return [[DGActivityIndicatorBallScaleRippleAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallScaleRippleMultiple: + return [[DGActivityIndicatorBallScaleRippleMultipleAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeTriangleSkewSpin: + return [[DGActivityIndicatorTriangleSkewSpinAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallGridBeat: + return [[DGActivityIndicatorBallGridBeatAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeBallGridPulse: + return [[DGActivityIndicatorBallGridPulseAnimation alloc] init]; + case DGActivityIndicatorAnimationTypeRotatingSandglass: + return [[DGActivityIndicatorRotatingSandglassAnimation alloc]init]; + case DGActivityIndicatorAnimationTypeRotatingTrigons: + return [[DGActivityIndicatorRotatingTrigonAnimation alloc]init]; + case DGActivityIndicatorAnimationTypeTripleRings: + return [[DGActivityIndicatorTripleRingsAnimation alloc]init]; + case DGActivityIndicatorAnimationTypeCookieTerminator: + return [[DGActivityIndicatorCookieTerminatorAnimation alloc]init]; + case DGActivityIndicatorAnimationTypeBallSpinFadeLoader: + return [[DGActivityIndicatorBallSpinFadeLoader alloc] init]; + } + return nil; +} + +@end diff --git a/Example/Pods/DGActivityIndicatorView/LICENSE b/Example/Pods/DGActivityIndicatorView/LICENSE new file mode 100644 index 0000000..d9c7439 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Danil Gontovnik + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/Example/Pods/DGActivityIndicatorView/README.md b/Example/Pods/DGActivityIndicatorView/README.md new file mode 100644 index 0000000..3c42530 --- /dev/null +++ b/Example/Pods/DGActivityIndicatorView/README.md @@ -0,0 +1,87 @@ +# DGActivityIndicatorView +DGActivityIndicatorView is a great way to make loading spinners in your application look nicer. It contains 32 different indicator view styles. Inspired by: http://connoratherton.com/loaders + +![alt tag](https://raw.githubusercontent.com/gontovnik/DGActivityIndicatorView/master/DGActivityIndicatorView.gif) + +## Requirements +* Xcode 6 or higher +* Apple LLVM compiler +* iOS 8.0 or higher (May work on previous versions, just did not testit. Feel free to edit it). +* ARC + +## Demo + +Open and run the DGActivityIndicatorExample project in Xcode to see DGActivityIndicatorView in action. + +## Installation + +### Cocoapods + +Install Cocoapods if it is not installed yet: + +``` bash +$ [sudo] gem install cocoapods +$ pod setup +``` + +Add DGActivityIndicatorView to Podfile: + +``` bash +pod 'DGActivityIndicatorView' +``` + +Call 'pod install': + +``` bash +pod install +``` + +### Manual install + +All you need to do is drop DGActivityIndicatorView folder into your project and include headers. + +## Example usage + +``` objective-c +DGActivityIndicatorView *activityIndicatorView = [[DGActivityIndicatorView alloc] initWithType:DGActivityIndicatorAnimationTypeDoubleBounce tintColor:[UIColor whiteColor] size:20.0f]; +activityIndicatorView.frame = CGRectMake(0.0f, 0.0f, 50.0f, 50.0f); +[self.view addSubview:activityIndicatorView]; +[activityIndicatorView startAnimating]; +``` + +## TODO + +* Add more different animations + +## Contact + +Danil Gontovnik + +- https://github.com/gontovnik +- https://twitter.com/gontovnik +- http://gontovnik.com/ +- gontovnik.danil@gmail.com + +## License + +The MIT License (MIT) + +Copyright (c) 2015 Danil Gontovnik + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Example/Pods/Local Podspecs/PNImagePickerViewController.podspec.json b/Example/Pods/Local Podspecs/PNImagePickerViewController.podspec.json index 7928698..1f19936 100644 --- a/Example/Pods/Local Podspecs/PNImagePickerViewController.podspec.json +++ b/Example/Pods/Local Podspecs/PNImagePickerViewController.podspec.json @@ -28,6 +28,9 @@ "dependencies": { "PureLayout": [ + ], + "DGActivityIndicatorView": [ + ] } } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index e1dbdcb..e7ef14b 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,4 +1,5 @@ PODS: + - DGActivityIndicatorView (2.0) - Expecta (1.0.5) - Expecta+Snapshots (2.0.0): - Expecta (~> 1.0) @@ -9,6 +10,7 @@ PODS: - FBSnapshotTestCase/SwiftSupport (2.0.7): - FBSnapshotTestCase/Core - PNImagePickerViewController (0.1.0): + - DGActivityIndicatorView - PureLayout - PureLayout (3.0.1) - Specta (1.0.5) @@ -26,10 +28,11 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: + DGActivityIndicatorView: 52875b025a6ccf6a431a905285c12e2bb95eb559 Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe Expecta+Snapshots: 29b38dd695bc72a0ed2bea833937d78df41943ba FBSnapshotTestCase: 7e85180d0d141a0cf472352edda7e80d7eaeb547 - PNImagePickerViewController: 9eaf2575e70de776463e23904f9d466f98d27ad4 + PNImagePickerViewController: 8225ee425aa04f1f3716c7ea9786561de3782096 PureLayout: f35f5384c9c4e4479df041dbe33ad7577b71ddfb Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index e9fa21f..4a5ec6d 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,231 +7,319 @@ objects = { /* Begin PBXBuildFile section */ - 0690251E14FB6236B8C0F921AC475FB6 /* PNCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BE3F27961738F25BC58F8322179B8364 /* PNCollectionViewCell.m */; }; - 07CAFACAFAC87ABBF28D453E70832464 /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = 49B0983683A73B0A5B7A4FB352CBD58A /* UIImage+Compare.m */; }; - 0A5DFD94EE83E385C1C7D24986E04592 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03125582C7BE5CEF86A73FA369065311 /* SwiftSupport.swift */; }; - 0C1DCD965236FA97FD51175704561126 /* XCTest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 543F7BDA4F5F79573CAA43601F700A67 /* XCTest+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C6FF91EB1F0391ED75DC72D31D159EF /* EXPMatchers+beTruthy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F7482216BDAA86DA901E47954D81943 /* EXPMatchers+beTruthy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 0D16B556212D317A0D4FEB71E102E207 /* EXPMatchers+beLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CD52C0184F0903B7EA8B033B01717A9 /* EXPMatchers+beLessThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EBFA5FBE4953A83B677CE2A75746761 /* EXPMatchers+beLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 390F5EAD0FA0ACB91D06A90A974E0A45 /* EXPMatchers+beLessThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 0F94F5B0ABB3252B9275B7C129EC7A26 /* EXPMatchers+equal.h in Headers */ = {isa = PBXBuildFile; fileRef = 238F2FBD86752F42D840CC54A3F5A407 /* EXPMatchers+equal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11C1AEB289C1EB80089349B71F09D04B /* EXPMatchers+raiseWithReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 510D07686732BBA3C4B870F02EAC7A30 /* EXPMatchers+raiseWithReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1303C5017F898BD7F98DB1BD1AFFAB49 /* Specta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AA01D298630B12AA0970C55ADF492FE2 /* Specta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1312A7D381C51428CF481E33E3D37901 /* EXPMatchers+beGreaterThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 80156AEEDC4D129C5C54BFFED8633BF6 /* EXPMatchers+beGreaterThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 131532787AD40BE1F35DF288D2E6FFD7 /* EXPMatchers+beInTheRangeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 70688D0A2ACC0A7F02D0F1235F0E8BF4 /* EXPMatchers+beInTheRangeOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13E6BEF790F8746E9BA8849BFAB94E3F /* SPTCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = F2326EBC2CEBEDD1AC39E41341CE4A96 /* SPTCallSite.m */; }; - 16CB96DE4260C29B5932E729435BD2AD /* NSString+HexColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E902D9B8E310A8D78AFE8B074819218 /* NSString+HexColor.m */; }; - 17572374B2AE183C6347C41E8DF8E579 /* EXPMatchers+beFalsy.m in Sources */ = {isa = PBXBuildFile; fileRef = 31480E56FB4A5AF08ADA95062BFEFC89 /* EXPMatchers+beFalsy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 184CCD5A7C9B2FDBD13FB45D3D3B99FD /* Specta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 703612D1CEA30E0B8C9E02D238F7196E /* Specta-dummy.m */; }; - 1993857B26D7AFE6B3C888986768FDE2 /* PureLayoutDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BF30C23B3BDD819BCFB41457392E2D9 /* PureLayoutDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A1AB2EC52323C5EA28DAA99F1E1A90D /* EXPMatchers+endWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 313C5B73A027A335880529469217DAC0 /* EXPMatchers+endWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AAC27517D2E1C6AC73AE3B609AF359C /* SPTTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 58380708EFDF326D68D6060E486CB90D /* SPTTestSuite.m */; }; - 1AB3304B6884F626BC54150AC7565E18 /* EXPMatchers+equal.m in Sources */ = {isa = PBXBuildFile; fileRef = 4016B648F56236C2BA14F6C65E94AFC0 /* EXPMatchers+equal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 1B0389CD88AA949B34DC7269030FEC6F /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = F65C9454F6F8DB1D7E3FFDE17F54D58C /* EXPMatchers+beGreaterThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 1F0DDAD8051AFDC85E1C7CE42CEFE024 /* Pods-PNImagePickerViewController_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 61DF146816D923BA85792DC9693B94D4 /* Pods-PNImagePickerViewController_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 201BF9C605852822CA5A65ADE282A310 /* EXPMatcherHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 52B96B599CCF1E2C6EE96048EA5880E3 /* EXPMatcherHelpers.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 202982C27067054C061304D6A53C9830 /* SPTSharedExampleGroups.h in Headers */ = {isa = PBXBuildFile; fileRef = 957CBE35D3FC82EDC76EDF33D58CC14A /* SPTSharedExampleGroups.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 204D694B03BFF3B244A6AB73FACFFC43 /* Expecta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F9093C7E794724D47C617BE24557A5D /* Expecta-dummy.m */; }; - 20C0CFB6F8C29123D1667E2676D8B2F5 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = C3F02F121BD9AAA950DEC5C89D564638 /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2374C44ACA9EB74301CC387D2C99587D /* NSArray+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = F42F0DA116857769307897100F7DA2CA /* NSArray+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2549CD1370AF63009DEC76693F5E9BD1 /* FBSnapshotTestCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 901657B874B99B4D8BAC6029F1239819 /* FBSnapshotTestCase.framework */; }; - 260BC7EED9289AF321A6F791964CE472 /* EXPMatchers+respondTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 17A1FCF90A9C0E52BA56CCF8B9DCF00C /* EXPMatchers+respondTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 264D55B73E4BE829EFD707ADED9655EB /* XCTestCase+Specta.m in Sources */ = {isa = PBXBuildFile; fileRef = CC4EC6D3BB6C4AAB71B02968CCEB66EA /* XCTestCase+Specta.m */; }; - 274D9545D0357B667BCAA82B3FB38ECD /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 6296391EB02733986480B8C3B38C1751 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 278432744E184DE2FAAC997F0455021F /* Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = C58ECDACD8D2FD15B5D6F0D6276B0700 /* Specta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2916A0606136A9DC67F2463AB230868B /* EXPMatchers+match.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7B81ED73344E500125187115387A8F /* EXPMatchers+match.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29923C8237C2521B7761DFBA1176AEF6 /* SPTExcludeGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BC4279D7351FD3A726A6EF02FC8ED19 /* SPTExcludeGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29F2AEAF2B01E3739BF745ADE8E9D0A4 /* Expecta+Snapshots-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B3E4CD3EBCF888648A5FDAC1B196AF58 /* Expecta+Snapshots-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2A7748A0699C2B1BE8ABEA9CFED631FC /* PureLayout-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 32ECF317E9844862171B030F13E92DD9 /* PureLayout-dummy.m */; }; - 2AE7AC04A02ABF5575E481C2AC56BAA4 /* SPTSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 0566C8B9ADE96B49FC01A2B3E52421BE /* SPTSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C0A8737FDB9B9C6A6BDF437FD11334C /* EXPMatchers+beNil.m in Sources */ = {isa = PBXBuildFile; fileRef = D32A0E3BF4F5096301528945D03203B2 /* EXPMatchers+beNil.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 2CFE2898496C1C7096DB8DA43AF19103 /* EXPMatchers+raise.m in Sources */ = {isa = PBXBuildFile; fileRef = 96722169F2EE7FD1D3A8A151F68B4997 /* EXPMatchers+raise.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 2E14619153A453BB8DF389FB6EA147BE /* ExpectaObject.h in Headers */ = {isa = PBXBuildFile; fileRef = AF51448F8D892B8D7E10576612FBA77A /* ExpectaObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E1FAA5E50BC174E7356BEAC15993B77 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3858144F30FB57931C02F64C362E3B5C /* Photos.framework */; }; - 2F427490ACABC4408D57CC0592276678 /* EXPDoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = FB37123DB4D2486C30EA392F17BF7505 /* EXPDoubleTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F48F56D90BA2AF519FDB5966BF7288F /* SPTExampleGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 563BDF7C8114F5105A8038CFD0803495 /* SPTExampleGroup.m */; }; - 2FF07674284F10FF5382D0AEAB764FB0 /* PNImagePickerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 659207AE2EF6E56A99A2880417729552 /* PNImagePickerViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 346833B09DCB096D7E23EF1DF3AA37A3 /* PNImagePickerViewController.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9BE9B9F15F1FC0C7BDDA5C9ED0AF220F /* PNImagePickerViewController.bundle */; }; - 34B6E9A30603BEBBD87BA535B7D384CA /* EXPMatchers+beInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BB793EEEA2972B9A2DB5CC84E5C7FC8 /* EXPMatchers+beInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35D17528C41E69D04EF227502A8EC77B /* SpectaUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 749800021466D47EDC1F64E037BF45CC /* SpectaUtility.m */; }; - 372F7A9CCE59CE86316CF436F832A3FC /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD87D11D30651D5EB6E5F42D4FCDFFE /* EXPMatchers+beGreaterThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 378AB5D15998CBD19ABD7E01BED7B391 /* SPTSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 20327CEB6D3F13297BDAB7FE6026920E /* SPTSpec.m */; }; - 37A2D0F8493469EF2495FC689440F079 /* EXPMatchers+beLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = F0BE4B0FD430ED5364A83BE6EFAB44E3 /* EXPMatchers+beLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 397B320B7C59C168CC5B62E18ED8DEA0 /* EXPMatchers+beSubclassOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 25BC55E750A529F4D0F46F5119E3EFB0 /* EXPMatchers+beSubclassOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 39F3AFD4DADD9BF4AEDFAF1FEA82B2F2 /* ExpectaObject+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE582482FAF1CEB39F0B9126CC59D6D /* ExpectaObject+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B5B7495707BF7133B9FB3F834045611 /* EXPBlockDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = AA101E016C76302C06F4575172FDC9DE /* EXPBlockDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C2700C7DAA15C6AF84A595865C42F4D /* EXPMatchers+contain.h in Headers */ = {isa = PBXBuildFile; fileRef = EF3299BF94C0392FCBAA98D2E58CB10E /* EXPMatchers+contain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D48EE131B6577ED73A5CC481A6FE40C /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4DBA040A9E2814F4869DD7B7B7E4F98 /* Expecta.framework */; }; - 3F5AFB158433D800A9AE61CB744054B0 /* SPTGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DBFEEB0166000625503662CDE93CDF3 /* SPTGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 403292D82DA62291204BF59524BC4EDB /* EXPMatchers+haveCountOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 289E592F6B702F82121F6BAC6F5CA8AA /* EXPMatchers+haveCountOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 4052EB66107F09D6F856EAA1F4FC0846 /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EBE0B34BA8C3C5428B651C33628FFEC /* UIImage+Snapshot.m */; }; - 453097252D8DA15ED33554933CDDBD06 /* SPTSharedExampleGroups.m in Sources */ = {isa = PBXBuildFile; fileRef = E172DFC29EE8C2A36AEC06644DCCA25D /* SPTSharedExampleGroups.m */; }; - 46137F5CC368BF38BAF0D0AF81DD8FFE /* EXPMatchers+raise.h in Headers */ = {isa = PBXBuildFile; fileRef = AD498EF1F11DF000A23462687DB4F486 /* EXPMatchers+raise.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 471FD4F68E27AB26FA2AEBB8B245CEE4 /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A4547E4EE9A69F8554ABE6EB6C8F6FA /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47D16DB1D23CFE027F5BE7F7E391AB4C /* EXPMatchers+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = AC25E36ECB984C6D46E07D449F8E6AD3 /* EXPMatchers+FBSnapshotTest.m */; }; - 47DE038D397A1D8D169BEA7C24549EF4 /* SPTCompiledExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AE18936EDB988BC6D3A33128764D642 /* SPTCompiledExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48A3244684540E73970769D236CE8793 /* SPTExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AAA1981FD0C38B91AE527BE960EE881 /* SPTExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4AE1F0FA07542E17D534D443E55BB63E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */; }; - 4B5542E72A64100965FFFA704684CED4 /* ExpectaObject+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 89B4983E65DB1A8DD67F7A9D82A5CBBE /* ExpectaObject+FBSnapshotTest.m */; }; - 4BBCBB9D8EF0B241A4A4FE4982985481 /* ExpectaSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B03B244D464496A92ACED43DA0DE3D /* ExpectaSupport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5056E0520959CBC31CCB037B59BFC847 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 80D1D2F56444ACE235744A744B9C8D67 /* UIKit.framework */; }; - 51DDDB0FB4899757CF6A826B531B940D /* EXPUnsupportedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 10E1AB2290A940590A50E8D54F54A2F6 /* EXPUnsupportedObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55BF89A8370D6D6E6971AC4F0D7B86FD /* SPTCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = A6922487AB8095FA4A248866B59E44EB /* SPTCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B2D4A621D3DA971A474776AF36BB073 /* EXPBlockDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = F6EB583A0E0B95BC98422547435C1DB8 /* EXPBlockDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5BF1E1FBAE24D8B3CA47C9FC381296DF /* SpectaDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 45EBC5857C0FBA732752E48E9359EDD8 /* SpectaDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5CF7526D330A734F7ABCDCFF3D1A9B35 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */; }; - 5EA7043FE10E75D02F3C3052AF8B8318 /* EXPDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = B73FA83187F6E3585C08B5C189A6F033 /* EXPDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5EE6F0E14E01D6AFF2C5D0A28584D9AF /* Pods-PNImagePickerViewController_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1A6C6BC96129C4BD3805467E03F49C /* Pods-PNImagePickerViewController_Tests-dummy.m */; }; - 6361270EB2EFD4CE80ABB4D9D726BDD1 /* PureLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6F5F421366F1062F96C25902DB7BFD2 /* PureLayout.framework */; }; - 65BC31095CCDFC80CBF6BBA843751F23 /* EXPMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C2BCB8ADDB4424AC3426DA52A88FD0 /* EXPMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66A27898E989A3FA5C15AA671C4536F0 /* EXPMatchers+beIdenticalTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A483661BF65897902AB0A0CFCD975AE /* EXPMatchers+beIdenticalTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 67459AD239EF669A365519E06B45DCFE /* EXPExpect.h in Headers */ = {isa = PBXBuildFile; fileRef = FF49B4C3C61836DE302F437C919A7A05 /* EXPExpect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E1D978790705E137FDE439AA68DD3AA /* EXPFloatTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 593892C8C11EDE0285489E134696F878 /* EXPFloatTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6EFC63A5CED45BB39FC79D87F2C47D6B /* EXPMatchers+beGreaterThan.h in Headers */ = {isa = PBXBuildFile; fileRef = DC7DF335401532E474FB05944C1ED485 /* EXPMatchers+beGreaterThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F278423C8AE1DA47F35E374BB5B91EC /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B5C933CDFBD78AAD0546A4AF52B9D5 /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 70967F6B7BDAE8BCBBC039DF9984015C /* PNImagePickerViewController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9637AFF7146F0DA6D5F4D8A13DFECA /* PNImagePickerViewController-dummy.m */; }; - 70E4BCC789D8C8F1033F23E0752502A7 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B977762C348A6EDA1883600F1DCFE58 /* FBSnapshotTestCase.m */; }; - 715A1122272BB3A29A10AAE4C8C03913 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */; }; - 75D32A41CF8027A97FD575048AFC035C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */; }; - 76CCABE79C04444450153424D7CE1DC1 /* EXPMatchers+beSupersetOf.h in Headers */ = {isa = PBXBuildFile; fileRef = C3F844297B8662ADF09537912FAC73ED /* EXPMatchers+beSupersetOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76D337327C10A7555447B69AA1562647 /* EXPMatchers+beInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 1509EB0EDB59BB6A235C075BDF27ACA5 /* EXPMatchers+beInstanceOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 772BFB9529121111C517FBA06EA26237 /* Expecta+Snapshots-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 35F1FA87897C7070C74ECF8D2CE8DAF9 /* Expecta+Snapshots-dummy.m */; }; - 774FE3A849D9CEA65AB50972674CE4C6 /* Pods-PNImagePickerViewController_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BE45DFB6789AAEB03C87E14911811BD /* Pods-PNImagePickerViewController_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7861523B9D5DFCF0F4A56E4DE3296AA2 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = A3238F2F8580E2D38D5628A33F934CFA /* FBSnapshotTestController.m */; }; - 79558B1F97ABE4AB8942DC18BEBD4B82 /* EXPMatchers+beKindOf.h in Headers */ = {isa = PBXBuildFile; fileRef = BB4F841C6A0CF76946BB788A161240EA /* EXPMatchers+beKindOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79E61152676FBAF9799E4F1DCA969CF2 /* PNImagePickerViewController-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 39EF931D9991CC7A7257528EC5239C85 /* PNImagePickerViewController-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B223B4E6EF14BA12DA113F7EE10B96C /* NSObject+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 87DC71BCE9F88907D4CA9EA6C6D4CD3A /* NSObject+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C16E367C0BD248774049989B329FEE6 /* ALView+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E64F0B58141D2A8C5B35D8B7E1D76E0 /* ALView+PureLayout.m */; }; - 805E425BBEF7A6133E32E1D30A073010 /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = 430444E6E86490E2572119A37E68341B /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 837B593D7C1D01B4EA400247309D6AB0 /* Expecta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C0D2BAE8C19CA6614F3CA94783F095D /* Expecta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 85E31076D5530AEEB45ACF16B2B8A983 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DFBE5937DE9B4E2ADFCD9B2EBF09325 /* EXPMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 85EB2F216487CB2E8F3FCCFBC4D69912 /* EXPMatchers+beTruthy.h in Headers */ = {isa = PBXBuildFile; fileRef = 579F45E6A47205E79C183A91C534F864 /* EXPMatchers+beTruthy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87FD5F0F682CDEB6A348CA448889E3EA /* EXPMatchers+beKindOf.m in Sources */ = {isa = PBXBuildFile; fileRef = C1EF7A5D7462BAA91E23F816C1B96180 /* EXPMatchers+beKindOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 89A46B63E469F17791D14FC64466794A /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = 3251AD74FAC3B67F2A03E3F30133557D /* UIImage+Diff.m */; }; - 89BAEBD7FF6D270EECD5AA2EBAAD22E5 /* PureLayout-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4E6D745DD948298DA344813F4F67D4 /* PureLayout-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BAA5A5F568886A0D333718CE7B2C3DB /* SPTExample.m in Sources */ = {isa = PBXBuildFile; fileRef = AADBF70B3B9D2D9143BFF2AC688B29D1 /* SPTExample.m */; }; - 8C8C1B0D83FE6A4352F15154DB16372C /* EXPMatcherHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = AA729BBF9CB238789CCA63E476AEA5CE /* EXPMatcherHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D1A5F519C1BBBEEE77F66B515FC3D66 /* ALView+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 54493E6647B30E3C5BEEFB40F581FF54 /* ALView+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 918E06480F28F27361B19D19432F8538 /* EXPMatchers+endWith.m in Sources */ = {isa = PBXBuildFile; fileRef = CB278C4D8E22AB0B2386C27A5DC84F44 /* EXPMatchers+endWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 931D410B9F8ACB935883DF8C59F9C93E /* EXPMatchers+postNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = FAD450F231B69F75615E743CE1ED2B4C /* EXPMatchers+postNotification.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 94C47C87E397972CE98F75929F3B706C /* ExpectaObject.m in Sources */ = {isa = PBXBuildFile; fileRef = C42C93ADD945A4372635BD32CAD3C814 /* ExpectaObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 9B2E761A064459F77EA9870BEF03ACC3 /* EXPMatchers+postNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = DD8F605551C2300C9C46FB3364564F6D /* EXPMatchers+postNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9BB9159FBA757600D3D4C0FF645F3911 /* EXPMatchers+beInTheRangeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 9106954FD71A00CE85BF2799C2328977 /* EXPMatchers+beInTheRangeOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A1B0E811BF9898CBA7B29B546070BC5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */; }; - A3372B44BC67F60CE578D36F6BA3530A /* NSLayoutConstraint+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B4D563AB4E127AF0A9FBC1E231C5D43 /* NSLayoutConstraint+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A4ABC102CBD31F39E80EFEA4AB7A738E /* PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FB4A919E61BF9E7388E2A08D5F6D7EA /* PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A4AC67807A52576C168C0606BC9C783A /* SPTTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 416F8ABB7F7E98CB081B7F19F9EB2F92 /* SPTTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8360AF9EB52A18F5FC74182F1FC577D /* Pods-PNImagePickerViewController_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 49EDEF02628E2CD3C475A46896250265 /* Pods-PNImagePickerViewController_Example-dummy.m */; }; - AB6685722275C4592751D73600321350 /* SpectaUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 68FDF6EB112C4423747393766720207C /* SpectaUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AF1F46668D4591602887998C6E9C10AD /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 19C53BEC21D8B0E161B0702E54CF7D9D /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFFC8900E52BBEC72059334132F3A8F3 /* ExpectaSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 63531BD7407ED90996601DCE8FCEFD55 /* ExpectaSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0879F635160F10BB9A8820E97A6ABEA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */; }; - B7489960D6579E861620D733D15BE2C1 /* NSArray+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DDC2F0DB66FDE2D99014751F0C471C6 /* NSArray+PureLayout.m */; }; - B84431CF8C64F363A334AA7089F6C134 /* NSValue+Expecta.m in Sources */ = {isa = PBXBuildFile; fileRef = DD4E5110B5ED80C99A3F9576C46C4672 /* NSValue+Expecta.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - BA12B131F10BCE3BE6E9A02FC908FE9D /* EXPMatchers+beCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 10782AE189DA5C3D8516751CF9C19A5E /* EXPMatchers+beCloseTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - BB5DD166C1EB3ECED5BB3CFD5524E2F5 /* NSLayoutConstraint+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 309AE29D56F62AA38812FCD588D97505 /* NSLayoutConstraint+PureLayout.m */; }; - BC55C8365AEFF8217F6A567607754854 /* EXPDoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 815FCECEE4FF630729054295EC5482B3 /* EXPDoubleTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - BD6235346E7F7116E42D25320126EA98 /* PNCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 096309059441EB5D11744229922922D4 /* PNCollectionViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BEFFE9FFE52E9A0833A7D2D8FB67EB4D /* EXPMatchers+beSubclassOf.m in Sources */ = {isa = PBXBuildFile; fileRef = ECF097833A853FF056370CCA06DA4831 /* EXPMatchers+beSubclassOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C200BCDC767A422FD3C9709B1BEA37E7 /* SPTCompiledExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F85577F3A8EFCC75870860E9CFCD164 /* SPTCompiledExample.m */; }; - C46E9249E3A217379AFDEF4E1B1D6D8E /* PhotosUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB6EF84A0C4781A668F2F6F76CE56AC4 /* PhotosUI.framework */; }; - C6E9B0A908F410317F2DBBECA0944AAB /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 173AC2808350B2FCFA846157AE99C71D /* FBSnapshotTestCase-dummy.m */; }; - C733E814C226F0AA7C6C7915E6FA3D90 /* SpectaTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E225E66B94E712DC093C6724AD11CFD /* SpectaTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC6B5A8198B55F9EFB60F446F2FD9BBC /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C71086A693BC5E296E2F30B405EEC247 /* XCTest.framework */; }; - CE3F4ECBB0BC095577D66AE50C8E604C /* EXPFloatTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = DEEE8F25AEEDB29355650590026262C0 /* EXPFloatTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - CE91E0B7C2BF362403CB3A75E69AA061 /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 05543C138878FE2F76FA1482DE5F50D0 /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; }; - D181FA8D3863D4294F5CD912DBEDA7C2 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C71086A693BC5E296E2F30B405EEC247 /* XCTest.framework */; }; - D1E9E55D21C92E33ACE7E911BCB96269 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B8BA7F1B66924CA150C782F5DD71763 /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D83677C54D2226C67886A525B0B46FBE /* EXPMatchers+beLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F639A935CAD81D124435F643E505794 /* EXPMatchers+beLessThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - DA5D8E9EC82544ADAF4A5119C7C4F693 /* PNImagePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8CFE481DA04D4CD82C10A8448158D2 /* PNImagePickerViewController.m */; }; - DB30F82FB1BE083D9471B965FB500CA2 /* EXPMatchers+conformTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 5723825DA3450735996AC90B937A4AEF /* EXPMatchers+conformTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - E0A077DFB064B79685B810CCEFB2F1EF /* EXPMatchers+respondTo.m in Sources */ = {isa = PBXBuildFile; fileRef = C764B935846E8C662CCF7906D8A555DA /* EXPMatchers+respondTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - E0AAF49134A0505DF00E20E7B62087E1 /* EXPMatchers+beIdenticalTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3649CB424097BF48E430598CDE474EEC /* EXPMatchers+beIdenticalTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0E4B1728B841A7E77AB9FF263F0502B /* XCTestCase+Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 03F0E7D7379464D80A5585C3D68EF9BF /* XCTestCase+Specta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E10811B5E4578C31FB675361C99EDED6 /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 393BCCE5FB0CAEDC7193DE9EBE3A4E09 /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; }; - E1EC4532663CA75DE5BD00CB0A56814D /* Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AE13025CC5C6B218AAF479784CD9ED2 /* Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3C61206BEDBA3EBAA0A69B51DE0F3AA /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E9000729E4BF417953FB356297ADC3 /* FBSnapshotTestCasePlatform.m */; }; - E4A96998069826E71AC9408A8D53B772 /* NSString+HexColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CE6DF46652A13B55C1A75A6C5257818 /* NSString+HexColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4EC16570D46F25B3BD2830D65C06AE5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */; }; - E735386085CE344F6A01178CF4763852 /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = AF42AAF54B5A41D37200E11671FFA6E8 /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA840679AC9463E0E3D371FCC3466B0A /* EXPMatchers+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D0C6649E2D25AE53519CD3D4CD09ADC /* EXPMatchers+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF6497EE123F6BC0C1B09717437C5908 /* EXPUnsupportedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 47C3908A5AAE0260FB6D95C74D65652D /* EXPUnsupportedObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - F0DDF02A078B917997FF025BB33BB842 /* EXPMatchers+conformTo.h in Headers */ = {isa = PBXBuildFile; fileRef = CE7DBAFD56D35A84CC36342276EA5A27 /* EXPMatchers+conformTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F12D57414A73406831CC032A7170DBFF /* EXPMatchers+beginWith.m in Sources */ = {isa = PBXBuildFile; fileRef = FA9AA960F05653C47EB2662A7E0E3796 /* EXPMatchers+beginWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - F14F53742FD27FA7A2C5CF692E801898 /* PureLayout+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 90A24E859872FBF4996DB8FF2C72D641 /* PureLayout+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F16445694BAA1C8B9B1D639DD27D05EC /* SpectaDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 567FED50899A681C87568B30C6A8DDF2 /* SpectaDSL.m */; }; - F1867C99D4A92FC191093E4901E463B5 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C71086A693BC5E296E2F30B405EEC247 /* XCTest.framework */; }; - F41209A94070904A00BDF24ACB6336B6 /* EXPMatchers+beFalsy.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA72D353A2583EA748D45A0652D40A4 /* EXPMatchers+beFalsy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F58F9BC7759BB8A5007B8821A275AEDD /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 76148374B1A8C1EE9BF4C8D44A477428 /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F75CB2A727F678C9A848A3A11EA7979B /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 65B4136A49BEA00E3874E067A148CFE2 /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F78C02E1874FB6F2664E8C242CC13663 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */; }; - FA839F20BC13A260E089D374CAAB584E /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C71086A693BC5E296E2F30B405EEC247 /* XCTest.framework */; }; - FAD264330709B586D2D5B17B4A7040C3 /* SPTExampleGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = B19A9279E73679D3F9F1DFAEA13E347C /* SPTExampleGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FC20596ABFE14A61F171A29FD03275E7 /* EXPMatchers+contain.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2536CA1A4C375065588D7CA7FFFD04 /* EXPMatchers+contain.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - FC45858927D3B6A0F922C4B697B04A38 /* EXPMatchers+match.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A5036265EC2BF776D08D8ED807B8000 /* EXPMatchers+match.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - FCDC9C0B871F82CB1AEE73303F9A2927 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BB31E11DDAAA96925A1236365EEB21F /* QuartzCore.framework */; }; - FD2D4497BC41412128C2D87C1BDE7398 /* EXPMatchers+beginWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 8306A05F3FC954D6F3B4E35C4F6B2E24 /* EXPMatchers+beginWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE8E34356D24F6759A8B010ED2F5707B /* EXPMatchers+raiseWithReason.m in Sources */ = {isa = PBXBuildFile; fileRef = FB445B211C424686C720B085874E2EF7 /* EXPMatchers+raiseWithReason.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 07561F0200CAD92CCDE9E27D69B51032 /* DGActivityIndicatorBallGridPulseAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = B59163A00563EBC5A37B41B9BA8B1C18 /* DGActivityIndicatorBallGridPulseAnimation.m */; }; + 07CAFACAFAC87ABBF28D453E70832464 /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = C4FB6B0CDBAB4083C9950033DDC89E7B /* UIImage+Compare.m */; }; + 0A5DFD94EE83E385C1C7D24986E04592 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFBF8625F2ED19045943D71291B07685 /* SwiftSupport.swift */; }; + 0C2B4BE785E3A2C20BF8446EB1146F1D /* DGActivityIndicatorTriangleSkewSpinAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AD82807D6953CB1A5B60F94FD4671D4 /* DGActivityIndicatorTriangleSkewSpinAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C6FF91EB1F0391ED75DC72D31D159EF /* EXPMatchers+beTruthy.m in Sources */ = {isa = PBXBuildFile; fileRef = 457905C28F99F2C5AF8AC310E1F9CECA /* EXPMatchers+beTruthy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 0D16B556212D317A0D4FEB71E102E207 /* EXPMatchers+beLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = DF86B44B7E35819FC61B294B343E31FB /* EXPMatchers+beLessThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E399F119C3EB91C778BE535B0944A2F /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1639AAA623ED22706A63D17EC17F2CE9 /* XCTest.framework */; }; + 0EBFA5FBE4953A83B677CE2A75746761 /* EXPMatchers+beLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 488E6E1D0416267DB24E68C51622EB47 /* EXPMatchers+beLessThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 0F94F5B0ABB3252B9275B7C129EC7A26 /* EXPMatchers+equal.h in Headers */ = {isa = PBXBuildFile; fileRef = 79C8373476354107A7B6604FF88E8598 /* EXPMatchers+equal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11C1AEB289C1EB80089349B71F09D04B /* EXPMatchers+raiseWithReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E468E012D2F747DEDDF8983E7250A06 /* EXPMatchers+raiseWithReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 12EF8DAD3D8C3931C75C8B20F5FD2AE9 /* SPTExampleGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CC1D91E36474C2C82AE8A6CFEA39074 /* SPTExampleGroup.m */; }; + 1312A7D381C51428CF481E33E3D37901 /* EXPMatchers+beGreaterThan.m in Sources */ = {isa = PBXBuildFile; fileRef = FBC0ACFB085C4A58604D3E412ED62FBA /* EXPMatchers+beGreaterThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 131532787AD40BE1F35DF288D2E6FFD7 /* EXPMatchers+beInTheRangeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 05D47C2C08E41238C223B56C2137D58A /* EXPMatchers+beInTheRangeOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 140A1BE0D6419A95CBBBA0157B7E340F /* PureLayout-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 22C6E4E56188E0902E08983B04833523 /* PureLayout-dummy.m */; }; + 15F4CD739A0EDE86912D1530E917B57A /* DGActivityIndicatorBallClipRotateMultipleAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F3C10A6D080F1EC376E57967C33147C /* DGActivityIndicatorBallClipRotateMultipleAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17572374B2AE183C6347C41E8DF8E579 /* EXPMatchers+beFalsy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B459F17FC9666AABCB0A418168C4AEF /* EXPMatchers+beFalsy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 17682BE883A2F4C49C8EFC6D2E1EA54A /* DGActivityIndicatorCookieTerminatorAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = E5C01C3973EEA5683DAF2A21243EE5D0 /* DGActivityIndicatorCookieTerminatorAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17D18ECCC07E5598886456B73C630F94 /* DGActivityIndicatorDoubleBounceAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 57FF04135B01341C5846A35E2C100412 /* DGActivityIndicatorDoubleBounceAnimation.m */; }; + 1A1AB2EC52323C5EA28DAA99F1E1A90D /* EXPMatchers+endWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 1903396031A91F59EC18BFD3EC16F7A2 /* EXPMatchers+endWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AB3304B6884F626BC54150AC7565E18 /* EXPMatchers+equal.m in Sources */ = {isa = PBXBuildFile; fileRef = C0373372700C722F5A96C4CFC6C54199 /* EXPMatchers+equal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 1AB5058C0B562ECF9AB105FD43010686 /* DGActivityIndicatorBallScaleRippleMultipleAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C9684CC7112205A4C65C9EF467C146A /* DGActivityIndicatorBallScaleRippleMultipleAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1AF22165F17B51F824A2E6F2B786BCA1 /* SPTCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = C1C2B7979A25FBEC9F71A189D1EE51AA /* SPTCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B0389CD88AA949B34DC7269030FEC6F /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 610572C5FF48FAE8A4EC2E3145774D28 /* EXPMatchers+beGreaterThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 1CD3908C83BFAB699660D0B89C6DA093 /* SpectaUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F4D2976E70EE23A7446D20F520D5290 /* SpectaUtility.m */; }; + 1F9BEB9B8BE5906E0BE6309A7DA20E8F /* DGActivityIndicatorLineScalePartyAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4B6F2352BB68D81B8E851154276590 /* DGActivityIndicatorLineScalePartyAnimation.m */; }; + 201BF9C605852822CA5A65ADE282A310 /* EXPMatcherHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 89EBAB4863EEC88B938996CB37083008 /* EXPMatcherHelpers.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 204D694B03BFF3B244A6AB73FACFFC43 /* Expecta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AC957DEF87E6A9F6B306C7388893038 /* Expecta-dummy.m */; }; + 20C0CFB6F8C29123D1667E2676D8B2F5 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DABBC4A31C8FE006D3B7C2E469D03AC /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 241CD4A833129705FA86C1A7775BCD64 /* Pods-PNImagePickerViewController_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BE45DFB6789AAEB03C87E14911811BD /* Pods-PNImagePickerViewController_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2549CD1370AF63009DEC76693F5E9BD1 /* FBSnapshotTestCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7136FE62CB53268676DCD2D374D43CE5 /* FBSnapshotTestCase.framework */; }; + 260BC7EED9289AF321A6F791964CE472 /* EXPMatchers+respondTo.h in Headers */ = {isa = PBXBuildFile; fileRef = E2B98CB95EBDDC9E87241B77A46E1266 /* EXPMatchers+respondTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 274D9545D0357B667BCAA82B3FB38ECD /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EA5EE4F2D75BEE67F35007E14EBA343 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 2916A0606136A9DC67F2463AB230868B /* EXPMatchers+match.h in Headers */ = {isa = PBXBuildFile; fileRef = 0332972D104A3D1BB9EB331D183AD48B /* EXPMatchers+match.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2949416D5FF64D27E225B0D18B7579FF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + 29F2AEAF2B01E3739BF745ADE8E9D0A4 /* Expecta+Snapshots-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F449D81313C96AAC3E90BF988280AD6E /* Expecta+Snapshots-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C0A8737FDB9B9C6A6BDF437FD11334C /* EXPMatchers+beNil.m in Sources */ = {isa = PBXBuildFile; fileRef = D352AED853C0AAE46F02D684528ED717 /* EXPMatchers+beNil.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 2CCDA7B640391DF9FB2B60F3C4ED0EEC /* XCTestCase+Specta.m in Sources */ = {isa = PBXBuildFile; fileRef = 53C788F990B84D46CF72C2B17D2EB55E /* XCTestCase+Specta.m */; }; + 2CFE2898496C1C7096DB8DA43AF19103 /* EXPMatchers+raise.m in Sources */ = {isa = PBXBuildFile; fileRef = 771C132970255F43C156A67EB86CA041 /* EXPMatchers+raise.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 2DA140470AD85B2CCFB7213E92E08D71 /* DGActivityIndicatorBallGridPulseAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = E6E4BAE650A258C80DA6C0499041E875 /* DGActivityIndicatorBallGridPulseAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E14619153A453BB8DF389FB6EA147BE /* ExpectaObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 92007BBA6C6286B9D00F2CBDA8804B19 /* ExpectaObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E17210766F697F9AD9103CAFBD8BBE6 /* DGActivityIndicatorLineScalePulseOutRapidAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = EABC475F73AEA8FA59A4B0801F74AA37 /* DGActivityIndicatorLineScalePulseOutRapidAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E8D4B3DBFA0C31E6BB7D96A8E0F1818 /* ALView+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C73FB93AF85307B0D5ABF9CD8C30EED /* ALView+PureLayout.m */; }; + 2F427490ACABC4408D57CC0592276678 /* EXPDoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = A0C161BBA8F108FF47EF6C02DC5CB263 /* EXPDoubleTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 30A2A1777CBE499A75821D727F01E1F7 /* Pods-PNImagePickerViewController_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 49EDEF02628E2CD3C475A46896250265 /* Pods-PNImagePickerViewController_Example-dummy.m */; }; + 3172B83647ECB68754D95036683F599E /* DGActivityIndicatorNineDotsAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 346B90014829A7B864C213F84294BE2C /* DGActivityIndicatorNineDotsAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 31BCE71DD41D9B408054A722E9F287F1 /* DGActivityIndicatorView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DB70BDEEF19D8835410FFAA325A803E6 /* DGActivityIndicatorView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 33331F50BCD2DD67D4C3F1748B164A00 /* DGActivityIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 10CA2329E94AAA9E76F025B2C1E0FD96 /* DGActivityIndicatorView.m */; }; + 34B6E9A30603BEBBD87BA535B7D384CA /* EXPMatchers+beInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EE10AFD4359597AA6CBCC8336E29234 /* EXPMatchers+beInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35197152F4B84384F210DA8B4F54FFF5 /* SPTCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 222376B437A71B76E4C29AB18AA9A18C /* SPTCallSite.m */; }; + 370C235D4E25EE97B99C676BBBEF41D6 /* DGActivityIndicatorLineScalePulseOutAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = AAD647C23E9EA90B3425D677A9CA612B /* DGActivityIndicatorLineScalePulseOutAnimation.m */; }; + 372F7A9CCE59CE86316CF436F832A3FC /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3160720CF30921889C17A2A8B843DEDC /* EXPMatchers+beGreaterThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37A2D0F8493469EF2495FC689440F079 /* EXPMatchers+beLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = D1C1EE0EB550603FC231CDB277A7CF74 /* EXPMatchers+beLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 38451C426B6EFF7A2C108D93D362E4FE /* DGActivityIndicatorRotatingSquaresAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F7AFA9E0DB6AED75E6E050A50321F0C /* DGActivityIndicatorRotatingSquaresAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 397B320B7C59C168CC5B62E18ED8DEA0 /* EXPMatchers+beSubclassOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E7089CED04847445415B38B32B4446C /* EXPMatchers+beSubclassOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 39F3AFD4DADD9BF4AEDFAF1FEA82B2F2 /* ExpectaObject+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 4131A52E9E99AE78388FCF1F4E6AB8DA /* ExpectaObject+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A051370CC9D40210ACEFCF33F1203AE /* XCTest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DF04190C52FF106F02A99E603753BFD /* XCTest+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A296D151BCD4D2C4077CAAA448A3F6F /* DGActivityIndicatorAnimationProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F8E15F4958152B93F7A51B41A49F06B7 /* DGActivityIndicatorAnimationProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3B5B7495707BF7133B9FB3F834045611 /* EXPBlockDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 885E0076902084EA9C5460FDC6349ADE /* EXPBlockDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C2700C7DAA15C6AF84A595865C42F4D /* EXPMatchers+contain.h in Headers */ = {isa = PBXBuildFile; fileRef = 714D907B92028E0BD968F8D41D05C0B6 /* EXPMatchers+contain.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3CA418E8BAC3E1BF4D06F0CA4361253B /* SpectaDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 30019DB7CD70B1AE959168A71100DD0F /* SpectaDSL.m */; }; + 3D48EE131B6577ED73A5CC481A6FE40C /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C28643FBB85D0B0E3DB9EB77F8ECF6B /* Expecta.framework */; }; + 3ECA55A9B2E952DC173B3299E4FBFD98 /* SPTExampleGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = EF5C76DECE92DA64A72713CE941E3C95 /* SPTExampleGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 403292D82DA62291204BF59524BC4EDB /* EXPMatchers+haveCountOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 83762AE8688F62BAFCA4942A7D46C455 /* EXPMatchers+haveCountOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 4052EB66107F09D6F856EAA1F4FC0846 /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A476C5F48F6D12A2DEB20753C6A1FE /* UIImage+Snapshot.m */; }; + 42E94F0AE69576E34A802EDA26333074 /* NSString+HexColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E902D9B8E310A8D78AFE8B074819218 /* NSString+HexColor.m */; }; + 43CAE225BF09A06CBDBF7E4CDE0BECC8 /* DGActivityIndicatorLineScalePartyAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BC7C887BFC34CE4D58F33C2A17964E6 /* DGActivityIndicatorLineScalePartyAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 459B57299616B93DA2F5C6CC5FF92E2F /* SPTSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = F53616AA4174D5EDA86EA86C95B64FAB /* SPTSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 46137F5CC368BF38BAF0D0AF81DD8FFE /* EXPMatchers+raise.h in Headers */ = {isa = PBXBuildFile; fileRef = 004F2BE504B652BDCD10B11C63E511D7 /* EXPMatchers+raise.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 471FD4F68E27AB26FA2AEBB8B245CEE4 /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 43B9B2D4764EC02C8CE015115DCEF444 /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47D16DB1D23CFE027F5BE7F7E391AB4C /* EXPMatchers+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 32308394C5A3AC5262CBBEAB931C6968 /* EXPMatchers+FBSnapshotTest.m */; }; + 4980117A03B0E96A110B3CB37CC79395 /* DGActivityIndicatorBallSpinFadeLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = C6BCE9F9EA5BD670ED777D7EA338E063 /* DGActivityIndicatorBallSpinFadeLoader.m */; }; + 4AACC51171BB2ECC9839B155DCDCA6E2 /* PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = C2CDEC51745442357360815D430E5D9B /* PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4B5542E72A64100965FFFA704684CED4 /* ExpectaObject+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FD85F8EB5968E2DAB76715F87DC13B1 /* ExpectaObject+FBSnapshotTest.m */; }; + 4BBCBB9D8EF0B241A4A4FE4982985481 /* ExpectaSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 575D2BEE9142717067E546136790A0F8 /* ExpectaSupport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 4D220E0A716E8D7AEB2D681482CAC058 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12B4AE8ABAA1002CDF4BDD74B2BA0CAD /* UIKit.framework */; }; + 4EBC5098491E4A72C65DE823F45233E1 /* DGActivityIndicatorBallScaleRippleMultipleAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A068609FD5C803077DC8C2042170535 /* DGActivityIndicatorBallScaleRippleMultipleAnimation.m */; }; + 4F3F87E6BBF8AE5DC7194DAC3874E50C /* DGActivityIndicatorBallScaleAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 170EBF77F1E14D3F0F06E1ABA52F046B /* DGActivityIndicatorBallScaleAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5056E0520959CBC31CCB037B59BFC847 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12B4AE8ABAA1002CDF4BDD74B2BA0CAD /* UIKit.framework */; }; + 507F973A0B3FE19FAF4E2CD83A088010 /* DGActivityIndicatorTriplePulseAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = A1C2992E3B24E991EF0EE4F073D749B2 /* DGActivityIndicatorTriplePulseAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5081D4B9B305CB5C932267775E5ADC2A /* Specta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 329C6E17EF66A77171669B112E1AF184 /* Specta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 518CC071482B901809FCE048F495D7A3 /* SPTCompiledExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 20A3C9C0308CA1587DB2CD90C9B53C50 /* SPTCompiledExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51DDDB0FB4899757CF6A826B531B940D /* EXPUnsupportedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = DB70E3EFF32FDB6FFA85E1F22E6A61AB /* EXPUnsupportedObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52C1413101DBAD2E6BAA08486027B442 /* PNCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 096309059441EB5D11744229922922D4 /* PNCollectionViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 593F06155CDE7ACBBA7476D7AB82F8FB /* DGActivityIndicatorLineScalePulseOutRapidAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8979CFB2689073F8D1DF5E94BA8CD0D4 /* DGActivityIndicatorLineScalePulseOutRapidAnimation.m */; }; + 5A5FC892C578E8E09612481FEF1BAC79 /* SPTGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 8840BCEBAAC747B222A9A3A4F0AC735C /* SPTGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B2D4A621D3DA971A474776AF36BB073 /* EXPBlockDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 61BE8EEF2C215C3E4C328250508B5B93 /* EXPBlockDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 5CF7526D330A734F7ABCDCFF3D1A9B35 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + 5EA7043FE10E75D02F3C3052AF8B8318 /* EXPDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = F45F565AABE7E9D19116A5DE203B8C68 /* EXPDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5FA1463A084ECF4696EF03DC51C2D77B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + 60EE56156353DBD86C94EC96DB54E651 /* SpectaUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F17C1DA9A37564AFCBA6087CEF966A7 /* SpectaUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63824AB90301BF4FB0AF39159218BA59 /* DGActivityIndicatorThreeDotsAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = CA568B6F1164CDE3763C92982FDF0B80 /* DGActivityIndicatorThreeDotsAnimation.m */; }; + 65BC31095CCDFC80CBF6BBA843751F23 /* EXPMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D5DFE769CE7D7DF02A2EDF9A8B73562 /* EXPMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66A27898E989A3FA5C15AA671C4536F0 /* EXPMatchers+beIdenticalTo.m in Sources */ = {isa = PBXBuildFile; fileRef = DCD2DE470DD0C352D53BB989F844C45B /* EXPMatchers+beIdenticalTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 67459AD239EF669A365519E06B45DCFE /* EXPExpect.h in Headers */ = {isa = PBXBuildFile; fileRef = 9288E8E5355BD1DF560F5E2FA67CBD27 /* EXPExpect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6850450E57AC4796A55FE4DC36619439 /* DGActivityIndicatorBallPulseSyncAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = FC0E127EF1B41A9DCD8E34A51AA4A385 /* DGActivityIndicatorBallPulseSyncAnimation.m */; }; + 6A52028A42CC4DF7615602D7220F10EC /* DGActivityIndicatorBallBeatAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 34B3DC24D7A2619FFF8563970826ACCF /* DGActivityIndicatorBallBeatAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B2E0B17FDB03D52543CEC2DCC99A920 /* DGActivityIndicatorRotatingSandglassAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DAF9322518464921E04B73ED3A9D138 /* DGActivityIndicatorRotatingSandglassAnimation.m */; }; + 6CE44760279C7F040C589DF3D75AEC3D /* DGActivityIndicatorTriplePulseAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4993B4BADF6EE32D351D7CC1632212EF /* DGActivityIndicatorTriplePulseAnimation.m */; }; + 6E1D978790705E137FDE439AA68DD3AA /* EXPFloatTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 6925CA8B4B659ACD8F9034615203F945 /* EXPFloatTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6EFC63A5CED45BB39FC79D87F2C47D6B /* EXPMatchers+beGreaterThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C50F374315648DA74A678FDBCFC4102 /* EXPMatchers+beGreaterThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F278423C8AE1DA47F35E374BB5B91EC /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 78F835552B0C0149CC969BF4A9C0FD39 /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 6F83E4DAB3711B332CD1FC6AF0621DD1 /* SPTCompiledExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 088B8ADFAF220F761093C33897F82D3E /* SPTCompiledExample.m */; }; + 702573B4B747660E66FE7CCED6C669D1 /* DGActivityIndicatorRotatingSandglassAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 04C146F68F9866EDFA9CD60B858431E7 /* DGActivityIndicatorRotatingSandglassAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 70CCE71D9C707719CFE89C7FB88CB4E1 /* DGActivityIndicatorBallScaleAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = E414D62B6F3A82E4E06FB2313C8FD3D9 /* DGActivityIndicatorBallScaleAnimation.m */; }; + 70E4BCC789D8C8F1033F23E0752502A7 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 87F25E0962F435F50F7CAEEB293016B1 /* FBSnapshotTestCase.m */; }; + 715A1122272BB3A29A10AAE4C8C03913 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + 725C6B9DADF105D8368E507CF57D6BAC /* DGActivityIndicatorLineScalePulseOutAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CB6778380B76952396D9D8FADFA63B4 /* DGActivityIndicatorLineScalePulseOutAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 749D2CF67ECC9B40644F76FF48BD76D6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + 74C3CA26C2C8864B6089E51EBB889655 /* NSLayoutConstraint+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 80838666592F62DAE85097BA42B18413 /* NSLayoutConstraint+PureLayout.m */; }; + 76CCABE79C04444450153424D7CE1DC1 /* EXPMatchers+beSupersetOf.h in Headers */ = {isa = PBXBuildFile; fileRef = B52800E45378B2979869F16338D3491A /* EXPMatchers+beSupersetOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76D337327C10A7555447B69AA1562647 /* EXPMatchers+beInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 270D17BEA67B480CC451F01C825D4693 /* EXPMatchers+beInstanceOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 772BFB9529121111C517FBA06EA26237 /* Expecta+Snapshots-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD36B3A8AA77E453552AF13CEF72A54C /* Expecta+Snapshots-dummy.m */; }; + 7861523B9D5DFCF0F4A56E4DE3296AA2 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = D57C30E845781EF631DAF7DE8BA6859E /* FBSnapshotTestController.m */; }; + 78AB27588A0498FBBD085B0F342A8849 /* DGActivityIndicatorRotatingTrigonAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B82DA15E8DCF7611B8AA156171B0145 /* DGActivityIndicatorRotatingTrigonAnimation.m */; }; + 79558B1F97ABE4AB8942DC18BEBD4B82 /* EXPMatchers+beKindOf.h in Headers */ = {isa = PBXBuildFile; fileRef = AABFF02278A23BB1221E222182084C49 /* EXPMatchers+beKindOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A4E4B351E5899D7CC3C25709D726429 /* PhotosUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2777B90BD2747660C2F54A18905CF67E /* PhotosUI.framework */; }; + 7B223B4E6EF14BA12DA113F7EE10B96C /* NSObject+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = BA5A98474C98EBC8C205B1A4E3EE6C27 /* NSObject+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B95A5748C7BA6F77B9AE06C673BEABD /* DGActivityIndicatorRotatingTrigonAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DBA37DDE7ABCA9E39467357B4CA0064 /* DGActivityIndicatorRotatingTrigonAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D9AF3EF5F280F29EAB684701AD5880C /* DGActivityIndicatorBallClipRotateMultipleAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E46BD9C49F3823060B10F976D221685 /* DGActivityIndicatorBallClipRotateMultipleAnimation.m */; }; + 7DA49190498C084817EDBC72C07A7275 /* DGActivityIndicatorBallBeatAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = F300B40AFA24F8C5A0751AA0E0AE0E17 /* DGActivityIndicatorBallBeatAnimation.m */; }; + 805E425BBEF7A6133E32E1D30A073010 /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = 121C30A30B8108CAE2294241F9E20A5B /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 81C03B62588C3CD53C101D7395FB8BF7 /* DGActivityIndicatorBallZigZagAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 77464E2D7487045EDA840C92E186223F /* DGActivityIndicatorBallZigZagAnimation.m */; }; + 837B593D7C1D01B4EA400247309D6AB0 /* Expecta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2423FED05E77BF592A237ACFB7D45CE0 /* Expecta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 85E31076D5530AEEB45ACF16B2B8A983 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = F24F9340428DE453F3C634E811179751 /* EXPMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 85EB2F216487CB2E8F3FCCFBC4D69912 /* EXPMatchers+beTruthy.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BA1D311BEC86CB50A8E8842C358FD66 /* EXPMatchers+beTruthy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 86A95407845729ADD1FB58758215FF2C /* SPTExcludeGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 252C82CD3B70832F764849FBFD70514F /* SPTExcludeGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8709C64037D9CF4E51BDC03EC72161EA /* SPTSharedExampleGroups.m in Sources */ = {isa = PBXBuildFile; fileRef = C863C942C44C853A7970FB91BB4D3843 /* SPTSharedExampleGroups.m */; }; + 87FD5F0F682CDEB6A348CA448889E3EA /* EXPMatchers+beKindOf.m in Sources */ = {isa = PBXBuildFile; fileRef = EE008D26EADDB7377223D1A256D4A042 /* EXPMatchers+beKindOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 88009544EDCD424A0008F2D8530A6467 /* DGActivityIndicatorBallScaleMultipleAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = EB0A71B16F5C2D5C9C819687D0C69620 /* DGActivityIndicatorBallScaleMultipleAnimation.m */; }; + 883438908E72EDB6864A50F2D8A1E640 /* DGActivityIndicatorBallClipRotatePulseAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = BD77462827262F193DA14BEBD1C3E231 /* DGActivityIndicatorBallClipRotatePulseAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89A46B63E469F17791D14FC64466794A /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = 461921FADCD06E927E2CF06D54FD6D7C /* UIImage+Diff.m */; }; + 8A0E4A9AF23A9A2A972BE17397ADBD27 /* NSArray+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = C96C01D1E4D2E00FED4476FA06FA5287 /* NSArray+PureLayout.m */; }; + 8A45630674D1B21D9F08C4253A97FDE3 /* DGActivityIndicatorThreeDotsAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A67131DD3E8A77797409C31AD32ECF1 /* DGActivityIndicatorThreeDotsAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C8C1B0D83FE6A4352F15154DB16372C /* EXPMatcherHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 338EE00E917E8DDCC405B3D08CAF995B /* EXPMatcherHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8EDEEF03336BBB11DCCD9C44BE8BB329 /* DGActivityIndicatorBallGridBeatAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 219E3CFCBF18A99FCF13094E5830A000 /* DGActivityIndicatorBallGridBeatAnimation.m */; }; + 902A1271DB996151FE1BE7AF43EA3194 /* DGActivityIndicatorBallScaleRippleAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 772058E89925821FF10E46546AF9B4B4 /* DGActivityIndicatorBallScaleRippleAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 918E06480F28F27361B19D19432F8538 /* EXPMatchers+endWith.m in Sources */ = {isa = PBXBuildFile; fileRef = F69A3ACAB5FFEC146FBA6197D8D480F9 /* EXPMatchers+endWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 92195EBD209DAC07D160B51545A0A369 /* PNImagePickerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 659207AE2EF6E56A99A2880417729552 /* PNImagePickerViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 926C0B755C4D0089E5DDFE92F6FCA90C /* SPTTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = B625AD940476D7EFD3A306E5DC19F876 /* SPTTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 931D410B9F8ACB935883DF8C59F9C93E /* EXPMatchers+postNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B66B9D8E9FC2BFAE108DE3D5AA312A /* EXPMatchers+postNotification.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 94C47C87E397972CE98F75929F3B706C /* ExpectaObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 395534BA328352619356CDAAF57C0D9D /* ExpectaObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 99FA387F351E05B19E84C8FE1933D03F /* DGActivityIndicatorTripleRingsAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A1081C6662F0D578C1C24057E9FFA25 /* DGActivityIndicatorTripleRingsAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A388C9AD29318111DA4BD9B0E904507 /* DGActivityIndicatorBallRotateAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2039B543F2617C1960BEFBAD77960521 /* DGActivityIndicatorBallRotateAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A5BA2C580B2C85F85309CA490FABDA6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + 9A7EC672396A59E69FECD2247C0CEB4A /* DGActivityIndicatorBallPulseAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2A625BE88D329B2DAB468A14D454E5 /* DGActivityIndicatorBallPulseAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B2E761A064459F77EA9870BEF03ACC3 /* EXPMatchers+postNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = E54DECB7356E53FC52ED067B347499E3 /* EXPMatchers+postNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B56777035894EEA07259D2D2A04F93F /* DGActivityIndicatorLineScaleAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FA716B4B3B5EE24519F302F20AE6863 /* DGActivityIndicatorLineScaleAnimation.m */; }; + 9BB9159FBA757600D3D4C0FF645F3911 /* EXPMatchers+beInTheRangeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 94E4469B3C95C5216684C7829AAB232C /* EXPMatchers+beInTheRangeOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 9C6897C2A6416E808C2CA17A15323FAF /* SPTExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 5408BFB149F5180F76A3B47146C40266 /* SPTExample.m */; }; + 9EB86D65E0F4539991EDB74E005FAFB9 /* PNImagePickerViewController-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 39EF931D9991CC7A7257528EC5239C85 /* PNImagePickerViewController-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F8B0B292DF7731375D7D21F6095A637 /* DGActivityIndicatorBallPulseAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B06A2507AD127178779415EC9208241 /* DGActivityIndicatorBallPulseAnimation.m */; }; + A18BC0E827527DDC3DB7416AF5F2C72C /* PNImagePickerViewController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9637AFF7146F0DA6D5F4D8A13DFECA /* PNImagePickerViewController-dummy.m */; }; + A93F972B693470D28C1D77FFC14C3947 /* Pods-PNImagePickerViewController_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1A6C6BC96129C4BD3805467E03F49C /* Pods-PNImagePickerViewController_Tests-dummy.m */; }; + AB50F74629B41A52F9C2707904257801 /* PNImagePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8CFE481DA04D4CD82C10A8448158D2 /* PNImagePickerViewController.m */; }; + AB8B19DFC68C46BA609EC9467715054E /* DGActivityIndicatorBallScaleMultipleAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = C2349F032C22C7888A00A0C1F10CAB77 /* DGActivityIndicatorBallScaleMultipleAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AF1F46668D4591602887998C6E9C10AD /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF332187656D70D080A1DE4BEB4D4BD /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFFC8900E52BBEC72059334132F3A8F3 /* ExpectaSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 61F9F01E426729B0B74AE78CB70A1420 /* ExpectaSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B14F635E504FBCC9C7FB53491C5F43CF /* DGActivityIndicatorBallGridBeatAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C6AA1B6F3BCCCDE553A56C33EB4649 /* DGActivityIndicatorBallGridBeatAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3D6FD60E6CB653FCD3D4D9C680E2795 /* DGActivityIndicatorBallPulseSyncAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8599925B3BA781F682EE8EC7602BB199 /* DGActivityIndicatorBallPulseSyncAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B430582BF4ECDE5DA729E32D7801AC46 /* DGActivityIndicatorBallClipRotateAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = AD46F573951121EAE28BB449BDAEABA0 /* DGActivityIndicatorBallClipRotateAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5DEF7BFC91B54C75FC489E9C9B78126 /* SPTSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 62790145E76AE0216D0A5DA79171259E /* SPTSpec.m */; }; + B630F28EAA126CCC9BAE21CD3232F559 /* DGActivityIndicatorTripleRingsAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = BB13355693092488ACB838CACE12EB64 /* DGActivityIndicatorTripleRingsAnimation.m */; }; + B84431CF8C64F363A334AA7089F6C134 /* NSValue+Expecta.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A6225907238E19AEB89FC94B661C1BB /* NSValue+Expecta.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + B8D1584645F450DAAF200880BAA74653 /* PureLayoutDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F987236F53B46A77FFCDCC613FC9C05 /* PureLayoutDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8F47580F2927FDFDE0D13C0202397FF /* NSString+HexColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CE6DF46652A13B55C1A75A6C5257818 /* NSString+HexColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B9E66BFCBCE3F60A331D3E985C2206E1 /* DGActivityIndicatorBallZigZagDeflectAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 20313E59970B07CA74A0D20613315FBA /* DGActivityIndicatorBallZigZagDeflectAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA12B131F10BCE3BE6E9A02FC908FE9D /* EXPMatchers+beCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B622E36D00B0EC421438CD40968EE0 /* EXPMatchers+beCloseTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BB344F817FF547333D72B09B73E47763 /* DGActivityIndicatorBallScaleRippleAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 29BE5D286465E639EE8D48EE893E378D /* DGActivityIndicatorBallScaleRippleAnimation.m */; }; + BB9F3C679F0D948D111B2713F1CA5F6A /* DGActivityIndicatorBallTrianglePathAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 069E06AFFEE19C5A2DEB24347C819167 /* DGActivityIndicatorBallTrianglePathAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBCA0A1AACF7BAB7864FCD0719B78C85 /* DGActivityIndicatorFiveDotsAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = F165E22E40244ACAC4A5654CBA5E24E3 /* DGActivityIndicatorFiveDotsAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC55C8365AEFF8217F6A567607754854 /* EXPDoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A4FDF3878CE27CE988C38AEA6654C5F /* EXPDoubleTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BD2ED2404EDA84144DB0768D4CB395DA /* Pods-PNImagePickerViewController_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 61DF146816D923BA85792DC9693B94D4 /* Pods-PNImagePickerViewController_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BEFFE9FFE52E9A0833A7D2D8FB67EB4D /* EXPMatchers+beSubclassOf.m in Sources */ = {isa = PBXBuildFile; fileRef = DDBEB2F265DE738C0F7887C020B1F28D /* EXPMatchers+beSubclassOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BFC6E50B7BC38766BEACD6A26F78D857 /* SPTSharedExampleGroups.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B8B84A943FC3581A554618EFECDA70E /* SPTSharedExampleGroups.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C054D6E72B61DACDE9935F0EF7131033 /* DGActivityIndicatorTwoDotsAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 46CE3B42FE5B19F23CD24060BE0920CA /* DGActivityIndicatorTwoDotsAnimation.m */; }; + C285942DD34A96C733769422CEE02CA3 /* SpectaTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FF45B8EC7AC741DAE4A3906D41CE9A6 /* SpectaTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3E0496F36F73C1A7DAE140D58730580 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + C466053640A702A88943A7882D3F168B /* PNCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BE3F27961738F25BC58F8322179B8364 /* PNCollectionViewCell.m */; }; + C6A0ADFB01F5886273F6AD6CB4399A0E /* DGActivityIndicatorCookieTerminatorAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DF91EF184B25A34AF05D45ECB8B38BA /* DGActivityIndicatorCookieTerminatorAnimation.m */; }; + C6E9B0A908F410317F2DBBECA0944AAB /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FAD67A3E9EF3B4766AC08DCC824CD0C /* FBSnapshotTestCase-dummy.m */; }; + C83141848220AE41D1EEFDB859C17CCB /* PNImagePickerViewController.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 095FFF7AB937FBD50319F3D81957EA97 /* PNImagePickerViewController.bundle */; }; + C88AC66D44949F77E6D5A59F4933571F /* DGActivityIndicatorView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 14681335FE6A5264FD8EC1C061E7CDD1 /* DGActivityIndicatorView-dummy.m */; }; + C95BAAEDDEA814CFE0ED625B5CC9280E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + CB13A851913814EEE6A164233BF15074 /* DGActivityIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = B64EB1329E44F12CA40EB9CD47E3D2E3 /* DGActivityIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CE3F4ECBB0BC095577D66AE50C8E604C /* EXPFloatTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F1BBA6B7B557D5FF0A3171482F0D67 /* EXPFloatTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + CE91E0B7C2BF362403CB3A75E69AA061 /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 753992C3B40788957CA7E10CC978F9DA /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; }; + D087C9CFBF8359F8BE6E8EC885158912 /* DGActivityIndicatorTriangleSkewSpinAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = D9FF93A6D3CD60EFD7678282FCA20D3D /* DGActivityIndicatorTriangleSkewSpinAnimation.m */; }; + D181FA8D3863D4294F5CD912DBEDA7C2 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1639AAA623ED22706A63D17EC17F2CE9 /* XCTest.framework */; }; + D1E9E55D21C92E33ACE7E911BCB96269 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = F1D7E4093E6B50AFFDDC307917C04C4D /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D2B26FC8DCD57DA066183E49185483D5 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4177993DB3B97042D48FC5AF4848F87 /* Photos.framework */; }; + D2FE91536E78BD05E507972108A75529 /* SPTExample.h in Headers */ = {isa = PBXBuildFile; fileRef = B8B275EDDCDCF2D38CAF49A40017D01D /* SPTExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D37AFA364E628E29732267EC31B71872 /* NSLayoutConstraint+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = E1D4DDB7EEFD7F398CD60BFB0FEE4F7E /* NSLayoutConstraint+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D57EE053A502E26C9D9542900DF51746 /* DGActivityIndicatorRotatingSquaresAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = B2D07280905270153CB51BE84E603490 /* DGActivityIndicatorRotatingSquaresAnimation.m */; }; + D820364E60396B6CBA51EC6661B1D2D5 /* DGActivityIndicatorTwoDotsAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 77BD465B0699C84B403C14801297E94E /* DGActivityIndicatorTwoDotsAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D83677C54D2226C67886A525B0B46FBE /* EXPMatchers+beLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 764E05BA4B42E70C21008CE02BECEE4C /* EXPMatchers+beLessThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + DB30F82FB1BE083D9471B965FB500CA2 /* EXPMatchers+conformTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 51A5CE482409925E53203B255D2626FA /* EXPMatchers+conformTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + DC2FF87409A68DBC6EF22FD234C72BD3 /* SPTTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 554C886ED08D11E80C0A5BEE9762FDE8 /* SPTTestSuite.m */; }; + DD0CF102363A373C3D8F44E4929D50D3 /* DGActivityIndicatorBallZigZagAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 89880E23D0FA533965CB9034C799F6CC /* DGActivityIndicatorBallZigZagAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE5158499A7116BF2B6DF560FD21A88A /* DGActivityIndicatorBallClipRotateAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = A673437D364C508C96D2396BF29B248C /* DGActivityIndicatorBallClipRotateAnimation.m */; }; + DE637B30FDD68BDD1D654AB501C6ADF8 /* XCTestCase+Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A89178F3121D6F08D3FF64FF460D24F /* XCTestCase+Specta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E06A30EE950652F6A084FB4FF1C711A4 /* Specta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F10C730C1F2B28DC275C7E9224BAD0BB /* Specta-dummy.m */; }; + E0A077DFB064B79685B810CCEFB2F1EF /* EXPMatchers+respondTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B673AC718C2596C1A1FBFB27FE75E08 /* EXPMatchers+respondTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + E0AAF49134A0505DF00E20E7B62087E1 /* EXPMatchers+beIdenticalTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 107A3DE05C14D3CE5E29B661678AB4B8 /* EXPMatchers+beIdenticalTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E10811B5E4578C31FB675361C99EDED6 /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EAD47761E6771712945E3578AEB063D /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; }; + E1EC4532663CA75DE5BD00CB0A56814D /* Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = A54A9028274D06409CC2977B0E10BFBC /* Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E2BEA93256B26EA7D1C8F402B3786C40 /* DGActivityIndicatorBallSpinFadeLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 67BEB743EB822DB344D1FDB79EEB19B9 /* DGActivityIndicatorBallSpinFadeLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3C61206BEDBA3EBAA0A69B51DE0F3AA /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = 43FD649ECB9DB789BDB324501DC0976F /* FBSnapshotTestCasePlatform.m */; }; + E4D2414595D5EB2CC4AC8878DF31FD72 /* DGActivityIndicatorBallTrianglePathAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F02CAD4927D227E9B8F64E76C6D79B8 /* DGActivityIndicatorBallTrianglePathAnimation.m */; }; + E4EC16570D46F25B3BD2830D65C06AE5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */; }; + E735386085CE344F6A01178CF4763852 /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = BD26CEA7F827DE4BBA98A4BDD93A9D93 /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E765CCC0E62A0FFEE777FFAF49FC4BA4 /* PureLayout-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D69CE0A8AA791901A9E680B47741DC73 /* PureLayout-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E99BFA3C549F1641104A1492DD4D2185 /* DGActivityIndicatorBallZigZagDeflectAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = A321EAD55888DD6044ADE41E2DA2D1F0 /* DGActivityIndicatorBallZigZagDeflectAnimation.m */; }; + EA840679AC9463E0E3D371FCC3466B0A /* EXPMatchers+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 98514AA1F7289BA23089765DE7CF1D6C /* EXPMatchers+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB6C20023507C33D7BC9D90400017578 /* PureLayout+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F6582E177A6873639EB320360C612D23 /* PureLayout+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC33D67A80A7BA5516439B4172D42FAE /* ALView+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 47EAA30B5D2029E9129DB846C9BB4013 /* ALView+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EC5286583893E586356B8C5F2694CA9E /* Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 679988580E3F54F978A9B8C200E86899 /* Specta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF6497EE123F6BC0C1B09717437C5908 /* EXPUnsupportedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FEA90ADE9DB7B03273630AB276F8DD /* EXPUnsupportedObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + F0DDF02A078B917997FF025BB33BB842 /* EXPMatchers+conformTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D827829DB6BCFF0311053AA2EE01B35 /* EXPMatchers+conformTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F12D57414A73406831CC032A7170DBFF /* EXPMatchers+beginWith.m in Sources */ = {isa = PBXBuildFile; fileRef = E62ACE7ECFAD595BCFDB74843AD1A4D2 /* EXPMatchers+beginWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + F1867C99D4A92FC191093E4901E463B5 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1639AAA623ED22706A63D17EC17F2CE9 /* XCTest.framework */; }; + F41209A94070904A00BDF24ACB6336B6 /* EXPMatchers+beFalsy.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B6B8EA0D93F6E424061F592524B5E23 /* EXPMatchers+beFalsy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F46030CE704666228CCCD89A59586A99 /* DGActivityIndicatorBallClipRotatePulseAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = CE86A4579EC09DC343B5C10D9079AB56 /* DGActivityIndicatorBallClipRotatePulseAnimation.m */; }; + F58F9BC7759BB8A5007B8821A275AEDD /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 60E38EC1C8BF31EF6BE5AF0D57A9D473 /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F6FEED8BDD67F9018372A8A53B4F0648 /* DGActivityIndicatorView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9F30D12FC93A9FE85BA9E280CA47F0C /* DGActivityIndicatorView.framework */; }; + F708EA5BCF76945F780EEEACB215968D /* DGActivityIndicatorFiveDotsAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = F043D41411071EB7695F7E6EB5053E80 /* DGActivityIndicatorFiveDotsAnimation.m */; }; + F70938307E06D652E364D266EA014497 /* DGActivityIndicatorNineDotsAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 363B6829723BF6FB10A3B3A94B75E36E /* DGActivityIndicatorNineDotsAnimation.m */; }; + F75CB2A727F678C9A848A3A11EA7979B /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 648EEE319F62D61A69EB22EA22C20EE9 /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F827541D56D5F4EFB385B5D4B94B47C9 /* DGActivityIndicatorDoubleBounceAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C0D7CB5FC931065DA98924EF0C18C9A /* DGActivityIndicatorDoubleBounceAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F829446E4D6BA30AB151A03970AFB2D8 /* DGActivityIndicatorBallRotateAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = CE45EB99FCDFDCD71A41117E18C36C41 /* DGActivityIndicatorBallRotateAnimation.m */; }; + FA538AB69B24F23BAD0822FBC8854194 /* DGActivityIndicatorLineScaleAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = C05B54046664B54E8EE624F979B2014C /* DGActivityIndicatorLineScaleAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA839F20BC13A260E089D374CAAB584E /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1639AAA623ED22706A63D17EC17F2CE9 /* XCTest.framework */; }; + FC135FB1692AE8604C4D6797ECAA76FD /* NSArray+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = F3AA3C32FD65264ED12C1A3F34412C16 /* NSArray+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC20596ABFE14A61F171A29FD03275E7 /* EXPMatchers+contain.m in Sources */ = {isa = PBXBuildFile; fileRef = 369E77F7391B9334464AD8933DEA558F /* EXPMatchers+contain.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + FC45858927D3B6A0F922C4B697B04A38 /* EXPMatchers+match.m in Sources */ = {isa = PBXBuildFile; fileRef = EC588B9EAC9440EF09B75FB3972C07FE /* EXPMatchers+match.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + FCDC9C0B871F82CB1AEE73303F9A2927 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FA4768257762FFDB3218C4A49990E8A /* QuartzCore.framework */; }; + FD2D4497BC41412128C2D87C1BDE7398 /* EXPMatchers+beginWith.h in Headers */ = {isa = PBXBuildFile; fileRef = B0D8176E92EDD13A72FC541922FADBC6 /* EXPMatchers+beginWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE43E73B9BA2688227C26E34FB6F9809 /* PureLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A16CA89E1D449A840965F3474760FCA /* PureLayout.framework */; }; + FE6F3A032E8925AEFFEA944577220CEB /* SpectaDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBD832ABC4328AADF090068DCE1D5C0 /* SpectaDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE8E34356D24F6759A8B010ED2F5707B /* EXPMatchers+raiseWithReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 12476CF16B5F9A89588B9A8812342554 /* EXPMatchers+raiseWithReason.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 02C606CD56CADA7FF7771A0F41C332B4 /* PBXContainerItemProxy */ = { + 269DD24A1A7A5F6D169002C12B5E7DF9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 7FE41DC3CF812C74E34FCA5182C46DCD; - remoteInfo = PureLayout; + remoteGlobalIDString = 9CFB9E3CDB1B8BC26E6D9B0F98A3F9B7; + remoteInfo = "PNImagePickerViewController-PNImagePickerViewController"; }; - 037C447B9E4583FED14E4E492EAB8B04 /* PBXContainerItemProxy */ = { + 358C0DEE8508791F076A1EADFAFB13E7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 7FE41DC3CF812C74E34FCA5182C46DCD; - remoteInfo = PureLayout; - }; - 25D545AF0C131B5A33DE6AC856C932C2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = FE84737BD4D109801238DAB5722D7DA1; - remoteInfo = PNImagePickerViewController; - }; - 6B01D766351D59ABC09AC96D739D963F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7FE41DC3CF812C74E34FCA5182C46DCD; - remoteInfo = PureLayout; - }; - 7765DEDE45993B63B9AA156E3F974450 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = FE84737BD4D109801238DAB5722D7DA1; - remoteInfo = PNImagePickerViewController; - }; - 77E6E93D39DA113B90AF7616159755B1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 21517BCEE59047E37A446CC807587934; + remoteGlobalIDString = 7B8A0A3B032D30BA25E22641FEA4E157; remoteInfo = Specta; }; - 82B55322802EC90372810696DA7E5480 /* PBXContainerItemProxy */ = { + 3769A1E369BC13F8F4792E813A72474C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = D07447EE3CEBB0BCB8D61DFCB8EA915F; - remoteInfo = FBSnapshotTestCase; + remoteGlobalIDString = 291621037D68F7869D267C25CE205F97; + remoteInfo = DGActivityIndicatorView; }; - 83D396FFFD51E051AD4896C4BEC7C3B5 /* PBXContainerItemProxy */ = { + 44513364046675581B4B669F53EC5992 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = C2DE51AD1CB9CA89C6FFB652F8A472FB; + remoteInfo = PureLayout; + }; + 73B06B702E27777740D8B4DB209085BD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 0D888F29E05E498D0CD91A51D28599A5; remoteInfo = Expecta; }; - C646DF0ABBA05EB1CFA2F6A24B8A9FAA /* PBXContainerItemProxy */ = { + 92C1F32D11BF83451749FF3EB767D9F0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = C2DE51AD1CB9CA89C6FFB652F8A472FB; + remoteInfo = PureLayout; + }; + A1C7D00C68171A02C591F9F25E6B4AE3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 291621037D68F7869D267C25CE205F97; + remoteInfo = DGActivityIndicatorView; + }; + A2B99F10A96C79DCA9DCEC68D7D2CB82 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 291621037D68F7869D267C25CE205F97; + remoteInfo = DGActivityIndicatorView; + }; + A950CBC5BEEABD51B7B5148463CEA672 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7F1E45BB1F97A2978AEC44A8621A23FC; + remoteInfo = PNImagePickerViewController; + }; + C8455532F2CB7627D811A71E51F38BD4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = D07447EE3CEBB0BCB8D61DFCB8EA915F; + remoteInfo = FBSnapshotTestCase; + }; + CC372CC3A0DBFFB29B67F94CA916224A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; @@ -245,12 +333,19 @@ remoteGlobalIDString = 0D888F29E05E498D0CD91A51D28599A5; remoteInfo = Expecta; }; - DCF7ED085C0C4D510878736F8920D8A6 /* PBXContainerItemProxy */ = { + D274548AFDEEF3B00AB19AB2C5D4521C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 651F3556BCECD15ACE6DA3826056C550; - remoteInfo = "PNImagePickerViewController-PNImagePickerViewController"; + remoteGlobalIDString = C2DE51AD1CB9CA89C6FFB652F8A472FB; + remoteInfo = PureLayout; + }; + F4840C68C0492D692E06359BCEDADE14 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7F1E45BB1F97A2978AEC44A8621A23FC; + remoteInfo = PNImagePickerViewController; }; F9BBA6CBCE0B1A136EAFACE5185B512D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -262,237 +357,329 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 03125582C7BE5CEF86A73FA369065311 /* SwiftSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftSupport.swift; path = FBSnapshotTestCase/SwiftSupport.swift; sourceTree = ""; }; - 03F0E7D7379464D80A5585C3D68EF9BF /* XCTestCase+Specta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTestCase+Specta.h"; path = "Specta/Specta/XCTestCase+Specta.h"; sourceTree = ""; }; - 05543C138878FE2F76FA1482DE5F50D0 /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = ""; }; - 0566C8B9ADE96B49FC01A2B3E52421BE /* SPTSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTSpec.h; path = Specta/Specta/SPTSpec.h; sourceTree = ""; }; + 004F2BE504B652BDCD10B11C63E511D7 /* EXPMatchers+raise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raise.h"; path = "Expecta/Matchers/EXPMatchers+raise.h"; sourceTree = ""; }; + 030C4DB51F0DDB0669E772BFCFE9C104 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0332972D104A3D1BB9EB331D183AD48B /* EXPMatchers+match.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+match.h"; path = "Expecta/Matchers/EXPMatchers+match.h"; sourceTree = ""; }; + 04C146F68F9866EDFA9CD60B858431E7 /* DGActivityIndicatorRotatingSandglassAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorRotatingSandglassAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.h; sourceTree = ""; }; + 05D47C2C08E41238C223B56C2137D58A /* EXPMatchers+beInTheRangeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInTheRangeOf.h"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.h"; sourceTree = ""; }; + 069E06AFFEE19C5A2DEB24347C819167 /* DGActivityIndicatorBallTrianglePathAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallTrianglePathAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.h; sourceTree = ""; }; + 088B8ADFAF220F761093C33897F82D3E /* SPTCompiledExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCompiledExample.m; path = Specta/Specta/SPTCompiledExample.m; sourceTree = ""; }; + 095FFF7AB937FBD50319F3D81957EA97 /* PNImagePickerViewController.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PNImagePickerViewController.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 096309059441EB5D11744229922922D4 /* PNCollectionViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNCollectionViewCell.h; sourceTree = ""; }; - 099A52678B3E80735A017D133E675C0B /* Expecta+Snapshots-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-prefix.pch"; sourceTree = ""; }; - 0B4D563AB4E127AF0A9FBC1E231C5D43 /* NSLayoutConstraint+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+PureLayout.h"; path = "PureLayout/PureLayout/NSLayoutConstraint+PureLayout.h"; sourceTree = ""; }; - 0BB31E11DDAAA96925A1236365EEB21F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 0CD0F5EFF1B3472519F5B4EE821A38E4 /* PureLayout.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PureLayout.xcconfig; sourceTree = ""; }; - 0E225E66B94E712DC093C6724AD11CFD /* SpectaTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaTypes.h; path = Specta/Specta/SpectaTypes.h; sourceTree = ""; }; - 10782AE189DA5C3D8516751CF9C19A5E /* EXPMatchers+beCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beCloseTo.m"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.m"; sourceTree = ""; }; - 10E1AB2290A940590A50E8D54F54A2F6 /* EXPUnsupportedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPUnsupportedObject.h; path = Expecta/EXPUnsupportedObject.h; sourceTree = ""; }; - 129E1C0CEC059CE5EFEA8DDBDC6BA783 /* PureLayout-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PureLayout-prefix.pch"; sourceTree = ""; }; - 1509EB0EDB59BB6A235C075BDF27ACA5 /* EXPMatchers+beInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInstanceOf.m"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.m"; sourceTree = ""; }; - 173AC2808350B2FCFA846157AE99C71D /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; - 17A1FCF90A9C0E52BA56CCF8B9DCF00C /* EXPMatchers+respondTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+respondTo.h"; path = "Expecta/Matchers/EXPMatchers+respondTo.h"; sourceTree = ""; }; - 19C53BEC21D8B0E161B0702E54CF7D9D /* EXPMatchers+beCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beCloseTo.h"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.h"; sourceTree = ""; }; - 1A2536CA1A4C375065588D7CA7FFFD04 /* EXPMatchers+contain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+contain.m"; path = "Expecta/Matchers/EXPMatchers+contain.m"; sourceTree = ""; }; - 1AA72D353A2583EA748D45A0652D40A4 /* EXPMatchers+beFalsy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beFalsy.h"; path = "Expecta/Matchers/EXPMatchers+beFalsy.h"; sourceTree = ""; }; + 0A16CA89E1D449A840965F3474760FCA /* PureLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PureLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0AD82807D6953CB1A5B60F94FD4671D4 /* DGActivityIndicatorTriangleSkewSpinAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorTriangleSkewSpinAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.h; sourceTree = ""; }; + 0CB6778380B76952396D9D8FADFA63B4 /* DGActivityIndicatorLineScalePulseOutAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorLineScalePulseOutAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.h; sourceTree = ""; }; + 0CC1D91E36474C2C82AE8A6CFEA39074 /* SPTExampleGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExampleGroup.m; path = Specta/Specta/SPTExampleGroup.m; sourceTree = ""; }; + 0E405D25EF786DE5F57FB893E6EAA756 /* Expecta+Snapshots-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-prefix.pch"; sourceTree = ""; }; + 107A3DE05C14D3CE5E29B661678AB4B8 /* EXPMatchers+beIdenticalTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beIdenticalTo.h"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.h"; sourceTree = ""; }; + 10CA2329E94AAA9E76F025B2C1E0FD96 /* DGActivityIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorView.m; path = DGActivityIndicatorView/DGActivityIndicatorView.m; sourceTree = ""; }; + 121C30A30B8108CAE2294241F9E20A5B /* EXPExpect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPExpect.m; path = Expecta/EXPExpect.m; sourceTree = ""; }; + 12476CF16B5F9A89588B9A8812342554 /* EXPMatchers+raiseWithReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raiseWithReason.m"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.m"; sourceTree = ""; }; + 12B4AE8ABAA1002CDF4BDD74B2BA0CAD /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 13A476C5F48F6D12A2DEB20753C6A1FE /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; }; + 14681335FE6A5264FD8EC1C061E7CDD1 /* DGActivityIndicatorView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DGActivityIndicatorView-dummy.m"; sourceTree = ""; }; + 147B084627125D8A29B3F2BAC904DC2E /* Pods_PNImagePickerViewController_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNImagePickerViewController_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1639AAA623ED22706A63D17EC17F2CE9 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 170EBF77F1E14D3F0F06E1ABA52F046B /* DGActivityIndicatorBallScaleAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallScaleAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.h; sourceTree = ""; }; + 1903396031A91F59EC18BFD3EC16F7A2 /* EXPMatchers+endWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+endWith.h"; path = "Expecta/Matchers/EXPMatchers+endWith.h"; sourceTree = ""; }; + 1A1081C6662F0D578C1C24057E9FFA25 /* DGActivityIndicatorTripleRingsAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorTripleRingsAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.h; sourceTree = ""; }; + 1C9684CC7112205A4C65C9EF467C146A /* DGActivityIndicatorBallScaleRippleMultipleAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallScaleRippleMultipleAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.h; sourceTree = ""; }; + 1E468E012D2F747DEDDF8983E7250A06 /* EXPMatchers+raiseWithReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raiseWithReason.h"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.h"; sourceTree = ""; }; 1EBA70DC0FA8837D95B73DCC11AA764D /* Pods-PNImagePickerViewController_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PNImagePickerViewController_Tests-acknowledgements.markdown"; sourceTree = ""; }; - 20327CEB6D3F13297BDAB7FE6026920E /* SPTSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTSpec.m; path = Specta/Specta/SPTSpec.m; sourceTree = ""; }; - 214647B96EB8D7B1FA18DD92A6EA3917 /* Expecta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Expecta.xcconfig; sourceTree = ""; }; - 238F2FBD86752F42D840CC54A3F5A407 /* EXPMatchers+equal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+equal.h"; path = "Expecta/Matchers/EXPMatchers+equal.h"; sourceTree = ""; }; - 25BC55E750A529F4D0F46F5119E3EFB0 /* EXPMatchers+beSubclassOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSubclassOf.h"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.h"; sourceTree = ""; }; - 289E592F6B702F82121F6BAC6F5CA8AA /* EXPMatchers+haveCountOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+haveCountOf.m"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.m"; sourceTree = ""; }; - 2BC4279D7351FD3A726A6EF02FC8ED19 /* SPTExcludeGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExcludeGlobalBeforeAfterEach.h; path = Specta/Specta/SPTExcludeGlobalBeforeAfterEach.h; sourceTree = ""; }; + 1F02CAD4927D227E9B8F64E76C6D79B8 /* DGActivityIndicatorBallTrianglePathAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallTrianglePathAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallTrianglePathAnimation.m; sourceTree = ""; }; + 1FA4768257762FFDB3218C4A49990E8A /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + 1FF332187656D70D080A1DE4BEB4D4BD /* EXPMatchers+beCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beCloseTo.h"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.h"; sourceTree = ""; }; + 20313E59970B07CA74A0D20613315FBA /* DGActivityIndicatorBallZigZagDeflectAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallZigZagDeflectAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.h; sourceTree = ""; }; + 2039B543F2617C1960BEFBAD77960521 /* DGActivityIndicatorBallRotateAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallRotateAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.h; sourceTree = ""; }; + 20A3C9C0308CA1587DB2CD90C9B53C50 /* SPTCompiledExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTCompiledExample.h; path = Specta/Specta/SPTCompiledExample.h; sourceTree = ""; }; + 219E3CFCBF18A99FCF13094E5830A000 /* DGActivityIndicatorBallGridBeatAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallGridBeatAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.m; sourceTree = ""; }; + 222376B437A71B76E4C29AB18AA9A18C /* SPTCallSite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCallSite.m; path = Specta/Specta/SPTCallSite.m; sourceTree = ""; }; + 22C6E4E56188E0902E08983B04833523 /* PureLayout-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PureLayout-dummy.m"; sourceTree = ""; }; + 2423FED05E77BF592A237ACFB7D45CE0 /* Expecta-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-umbrella.h"; sourceTree = ""; }; + 252C82CD3B70832F764849FBFD70514F /* SPTExcludeGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExcludeGlobalBeforeAfterEach.h; path = Specta/Specta/SPTExcludeGlobalBeforeAfterEach.h; sourceTree = ""; }; + 270D17BEA67B480CC451F01C825D4693 /* EXPMatchers+beInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInstanceOf.m"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.m"; sourceTree = ""; }; + 2773DE368858A54FF18FA4BC9A2CD92A /* DGActivityIndicatorView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DGActivityIndicatorView-prefix.pch"; sourceTree = ""; }; + 2777B90BD2747660C2F54A18905CF67E /* PhotosUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PhotosUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/PhotosUI.framework; sourceTree = DEVELOPER_DIR; }; + 29BE5D286465E639EE8D48EE893E378D /* DGActivityIndicatorBallScaleRippleAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallScaleRippleAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.m; sourceTree = ""; }; + 2B673AC718C2596C1A1FBFB27FE75E08 /* EXPMatchers+respondTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+respondTo.m"; path = "Expecta/Matchers/EXPMatchers+respondTo.m"; sourceTree = ""; }; + 2BC7C887BFC34CE4D58F33C2A17964E6 /* DGActivityIndicatorLineScalePartyAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorLineScalePartyAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.h; sourceTree = ""; }; 2BD49C93526619102F2D474766196B38 /* Pods-PNImagePickerViewController_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNImagePickerViewController_Example.release.xcconfig"; sourceTree = ""; }; 2BE45DFB6789AAEB03C87E14911811BD /* Pods-PNImagePickerViewController_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PNImagePickerViewController_Tests-umbrella.h"; sourceTree = ""; }; - 2C6E94DA05F91DF35F74319DC6F0DF33 /* Specta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Specta.xcconfig; sourceTree = ""; }; + 2C50F374315648DA74A678FDBCFC4102 /* EXPMatchers+beGreaterThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThan.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.h"; sourceTree = ""; }; 2CC7838A86697C8CC0F9C91603830498 /* Pods-PNImagePickerViewController_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PNImagePickerViewController_Example-acknowledgements.markdown"; sourceTree = ""; }; - 2CD52C0184F0903B7EA8B033B01717A9 /* EXPMatchers+beLessThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThan.h"; path = "Expecta/Matchers/EXPMatchers+beLessThan.h"; sourceTree = ""; }; - 305597218253482DD97EA53544065F82 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 309AE29D56F62AA38812FCD588D97505 /* NSLayoutConstraint+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+PureLayout.m"; path = "PureLayout/PureLayout/NSLayoutConstraint+PureLayout.m"; sourceTree = ""; }; - 313C5B73A027A335880529469217DAC0 /* EXPMatchers+endWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+endWith.h"; path = "Expecta/Matchers/EXPMatchers+endWith.h"; sourceTree = ""; }; - 31480E56FB4A5AF08ADA95062BFEFC89 /* EXPMatchers+beFalsy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beFalsy.m"; path = "Expecta/Matchers/EXPMatchers+beFalsy.m"; sourceTree = ""; }; - 3251AD74FAC3B67F2A03E3F30133557D /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Diff.m"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.m"; sourceTree = ""; }; - 32ECF317E9844862171B030F13E92DD9 /* PureLayout-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PureLayout-dummy.m"; sourceTree = ""; }; - 35F1FA87897C7070C74ECF8D2CE8DAF9 /* Expecta+Snapshots-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta+Snapshots-dummy.m"; sourceTree = ""; }; - 3649CB424097BF48E430598CDE474EEC /* EXPMatchers+beIdenticalTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beIdenticalTo.h"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.h"; sourceTree = ""; }; - 3858144F30FB57931C02F64C362E3B5C /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; + 2D5C17BA316D6BF546147CB40542FCC2 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 2DABBC4A31C8FE006D3B7C2E469D03AC /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = ""; }; + 2DB1EC8D87E652DA8D04A02DFB6E3920 /* PureLayout-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PureLayout-prefix.pch"; sourceTree = ""; }; + 2DF91EF184B25A34AF05D45ECB8B38BA /* DGActivityIndicatorCookieTerminatorAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorCookieTerminatorAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.m; sourceTree = ""; }; + 30019DB7CD70B1AE959168A71100DD0F /* SpectaDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SpectaDSL.m; path = Specta/Specta/SpectaDSL.m; sourceTree = ""; }; + 3160720CF30921889C17A2A8B843DEDC /* EXPMatchers+beGreaterThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h"; sourceTree = ""; }; + 32308394C5A3AC5262CBBEAB931C6968 /* EXPMatchers+FBSnapshotTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+FBSnapshotTest.m"; sourceTree = ""; }; + 329C6E17EF66A77171669B112E1AF184 /* Specta-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Specta-umbrella.h"; sourceTree = ""; }; + 338EE00E917E8DDCC405B3D08CAF995B /* EXPMatcherHelpers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcherHelpers.h; path = Expecta/Matchers/EXPMatcherHelpers.h; sourceTree = ""; }; + 346B90014829A7B864C213F84294BE2C /* DGActivityIndicatorNineDotsAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorNineDotsAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.h; sourceTree = ""; }; + 34B3DC24D7A2619FFF8563970826ACCF /* DGActivityIndicatorBallBeatAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallBeatAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.h; sourceTree = ""; }; + 363B6829723BF6FB10A3B3A94B75E36E /* DGActivityIndicatorNineDotsAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorNineDotsAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorNineDotsAnimation.m; sourceTree = ""; }; + 369E77F7391B9334464AD8933DEA558F /* EXPMatchers+contain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+contain.m"; path = "Expecta/Matchers/EXPMatchers+contain.m"; sourceTree = ""; }; 3891C8C7F92D4B56E91DBC75F4091968 /* Pods-PNImagePickerViewController_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNImagePickerViewController_Example-frameworks.sh"; sourceTree = ""; }; - 390F5EAD0FA0ACB91D06A90A974E0A45 /* EXPMatchers+beLessThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThan.m"; path = "Expecta/Matchers/EXPMatchers+beLessThan.m"; sourceTree = ""; }; - 393BCCE5FB0CAEDC7193DE9EBE3A4E09 /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Compare.h"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.h"; sourceTree = ""; }; + 38FB76AAB0240BF3D56AB98ACEE7EEA7 /* PureLayout.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = PureLayout.modulemap; sourceTree = ""; }; + 395534BA328352619356CDAAF57C0D9D /* ExpectaObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaObject.m; path = Expecta/ExpectaObject.m; sourceTree = ""; }; 39EF931D9991CC7A7257528EC5239C85 /* PNImagePickerViewController-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNImagePickerViewController-umbrella.h"; sourceTree = ""; }; - 3B5DC91278AF0B7B1C84CA0D25C7FC08 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3B8BA7F1B66924CA150C782F5DD71763 /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = ""; }; - 3DDC2F0DB66FDE2D99014751F0C471C6 /* NSArray+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+PureLayout.m"; path = "PureLayout/PureLayout/NSArray+PureLayout.m"; sourceTree = ""; }; + 3DAF9322518464921E04B73ED3A9D138 /* DGActivityIndicatorRotatingSandglassAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorRotatingSandglassAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSandglassAnimation.m; sourceTree = ""; }; 3E76906C21A6360E59BAB98FB678511A /* PNImagePickerViewController.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PNImagePickerViewController.xcconfig; sourceTree = ""; }; - 3F639A935CAD81D124435F643E505794 /* EXPMatchers+beLessThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.m"; sourceTree = ""; }; - 3FB4A919E61BF9E7388E2A08D5F6D7EA /* PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayout.h; path = PureLayout/PureLayout/PureLayout.h; sourceTree = ""; }; - 4016B648F56236C2BA14F6C65E94AFC0 /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; }; - 416F8ABB7F7E98CB081B7F19F9EB2F92 /* SPTTestSuite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTTestSuite.h; path = Specta/Specta/SPTTestSuite.h; sourceTree = ""; }; - 430444E6E86490E2572119A37E68341B /* EXPExpect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPExpect.m; path = Expecta/EXPExpect.m; sourceTree = ""; }; - 43E396376F0A58FC93901CB23B161BC3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 44C2BCB8ADDB4424AC3426DA52A88FD0 /* EXPMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcher.h; path = Expecta/EXPMatcher.h; sourceTree = ""; }; - 45EBC5857C0FBA732752E48E9359EDD8 /* SpectaDSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaDSL.h; path = Specta/Specta/SpectaDSL.h; sourceTree = ""; }; - 47C3908A5AAE0260FB6D95C74D65652D /* EXPUnsupportedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPUnsupportedObject.m; path = Expecta/EXPUnsupportedObject.m; sourceTree = ""; }; - 47E9000729E4BF417953FB356297ADC3 /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; }; - 49B0983683A73B0A5B7A4FB352CBD58A /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Compare.m"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.m"; sourceTree = ""; }; + 3EAD47761E6771712945E3578AEB063D /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Compare.h"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.h"; sourceTree = ""; }; + 4131A52E9E99AE78388FCF1F4E6AB8DA /* ExpectaObject+FBSnapshotTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ExpectaObject+FBSnapshotTest.h"; sourceTree = ""; }; + 43B9B2D4764EC02C8CE015115DCEF444 /* NSValue+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValue+Expecta.h"; path = "Expecta/NSValue+Expecta.h"; sourceTree = ""; }; + 43FD649ECB9DB789BDB324501DC0976F /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; }; + 457905C28F99F2C5AF8AC310E1F9CECA /* EXPMatchers+beTruthy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beTruthy.m"; path = "Expecta/Matchers/EXPMatchers+beTruthy.m"; sourceTree = ""; }; + 461921FADCD06E927E2CF06D54FD6D7C /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Diff.m"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.m"; sourceTree = ""; }; + 46CE3B42FE5B19F23CD24060BE0920CA /* DGActivityIndicatorTwoDotsAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorTwoDotsAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.m; sourceTree = ""; }; + 47EAA30B5D2029E9129DB846C9BB4013 /* ALView+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ALView+PureLayout.h"; path = "PureLayout/PureLayout/ALView+PureLayout.h"; sourceTree = ""; }; + 488E6E1D0416267DB24E68C51622EB47 /* EXPMatchers+beLessThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThan.m"; path = "Expecta/Matchers/EXPMatchers+beLessThan.m"; sourceTree = ""; }; + 489D711EBBF6D05C896D2937986DEDCA /* Expecta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Expecta.modulemap; sourceTree = ""; }; + 4993B4BADF6EE32D351D7CC1632212EF /* DGActivityIndicatorTriplePulseAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorTriplePulseAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.m; sourceTree = ""; }; 49EDEF02628E2CD3C475A46896250265 /* Pods-PNImagePickerViewController_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PNImagePickerViewController_Example-dummy.m"; sourceTree = ""; }; - 4A4547E4EE9A69F8554ABE6EB6C8F6FA /* NSValue+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValue+Expecta.h"; path = "Expecta/NSValue+Expecta.h"; sourceTree = ""; }; - 4A483661BF65897902AB0A0CFCD975AE /* EXPMatchers+beIdenticalTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beIdenticalTo.m"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.m"; sourceTree = ""; }; - 4AE18936EDB988BC6D3A33128764D642 /* SPTCompiledExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTCompiledExample.h; path = Specta/Specta/SPTCompiledExample.h; sourceTree = ""; }; 4B8CFE481DA04D4CD82C10A8448158D2 /* PNImagePickerViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNImagePickerViewController.m; sourceTree = ""; }; - 4BB793EEEA2972B9A2DB5CC84E5C7FC8 /* EXPMatchers+beInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInstanceOf.h"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.h"; sourceTree = ""; }; 4C2BA4F2B7217FDC234E2325261A2BF9 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 4DBFEEB0166000625503662CDE93CDF3 /* SPTGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTGlobalBeforeAfterEach.h; path = Specta/Specta/SPTGlobalBeforeAfterEach.h; sourceTree = ""; }; - 4DFBE5937DE9B4E2ADFCD9B2EBF09325 /* EXPMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatchers.h; path = Expecta/Matchers/EXPMatchers.h; sourceTree = ""; }; + 4E7089CED04847445415B38B32B4446C /* EXPMatchers+beSubclassOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSubclassOf.h"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.h"; sourceTree = ""; }; 4E902D9B8E310A8D78AFE8B074819218 /* NSString+HexColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+HexColor.m"; sourceTree = ""; }; - 4F719753BD46AC4A79F8FAE6B7A60BD9 /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = ""; }; - 4F85577F3A8EFCC75870860E9CFCD164 /* SPTCompiledExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCompiledExample.m; path = Specta/Specta/SPTCompiledExample.m; sourceTree = ""; }; - 510D07686732BBA3C4B870F02EAC7A30 /* EXPMatchers+raiseWithReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raiseWithReason.h"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.h"; sourceTree = ""; }; - 52B96B599CCF1E2C6EE96048EA5880E3 /* EXPMatcherHelpers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPMatcherHelpers.m; path = Expecta/Matchers/EXPMatcherHelpers.m; sourceTree = ""; }; - 53C8060B20388BDEA288843D2FAA8749 /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; - 543F7BDA4F5F79573CAA43601F700A67 /* XCTest+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTest+Private.h"; path = "Specta/Specta/XCTest+Private.h"; sourceTree = ""; }; - 54493E6647B30E3C5BEEFB40F581FF54 /* ALView+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ALView+PureLayout.h"; path = "PureLayout/PureLayout/ALView+PureLayout.h"; sourceTree = ""; }; - 561534F9468BFFFCD27420D9028EAF1D /* Expecta+Snapshots.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Expecta+Snapshots.xcconfig"; sourceTree = ""; }; - 563BDF7C8114F5105A8038CFD0803495 /* SPTExampleGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExampleGroup.m; path = Specta/Specta/SPTExampleGroup.m; sourceTree = ""; }; - 567FED50899A681C87568B30C6A8DDF2 /* SpectaDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SpectaDSL.m; path = Specta/Specta/SpectaDSL.m; sourceTree = ""; }; - 5723825DA3450735996AC90B937A4AEF /* EXPMatchers+conformTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+conformTo.m"; path = "Expecta/Matchers/EXPMatchers+conformTo.m"; sourceTree = ""; }; - 579F45E6A47205E79C183A91C534F864 /* EXPMatchers+beTruthy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beTruthy.h"; path = "Expecta/Matchers/EXPMatchers+beTruthy.h"; sourceTree = ""; }; + 4F4D2976E70EE23A7446D20F520D5290 /* SpectaUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SpectaUtility.m; path = Specta/Specta/SpectaUtility.m; sourceTree = ""; }; + 4F987236F53B46A77FFCDCC613FC9C05 /* PureLayoutDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayoutDefines.h; path = PureLayout/PureLayout/PureLayoutDefines.h; sourceTree = ""; }; + 4FA716B4B3B5EE24519F302F20AE6863 /* DGActivityIndicatorLineScaleAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorLineScaleAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.m; sourceTree = ""; }; + 51A5CE482409925E53203B255D2626FA /* EXPMatchers+conformTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+conformTo.m"; path = "Expecta/Matchers/EXPMatchers+conformTo.m"; sourceTree = ""; }; + 53C788F990B84D46CF72C2B17D2EB55E /* XCTestCase+Specta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestCase+Specta.m"; path = "Specta/Specta/XCTestCase+Specta.m"; sourceTree = ""; }; + 5408BFB149F5180F76A3B47146C40266 /* SPTExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExample.m; path = Specta/Specta/SPTExample.m; sourceTree = ""; }; + 554C886ED08D11E80C0A5BEE9762FDE8 /* SPTTestSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTTestSuite.m; path = Specta/Specta/SPTTestSuite.m; sourceTree = ""; }; + 575D2BEE9142717067E546136790A0F8 /* ExpectaSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaSupport.m; path = Expecta/ExpectaSupport.m; sourceTree = ""; }; 57D04540F7B5B7AB05AC9DE49BC0B44A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 58380708EFDF326D68D6060E486CB90D /* SPTTestSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTTestSuite.m; path = Specta/Specta/SPTTestSuite.m; sourceTree = ""; }; - 5892291CEFA7A94FA402E6AA6A47B34D /* Expecta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-prefix.pch"; sourceTree = ""; }; - 593892C8C11EDE0285489E134696F878 /* EXPFloatTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPFloatTuple.h; path = Expecta/EXPFloatTuple.h; sourceTree = ""; }; - 5A5036265EC2BF776D08D8ED807B8000 /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; }; - 5AE13025CC5C6B218AAF479784CD9ED2 /* Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Expecta.h; path = Expecta/Expecta.h; sourceTree = ""; }; - 5C0D2BAE8C19CA6614F3CA94783F095D /* Expecta-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-umbrella.h"; sourceTree = ""; }; - 5D2E7B136F89A8D5E8D9B527B8F5A555 /* Expecta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5F9093C7E794724D47C617BE24557A5D /* Expecta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta-dummy.m"; sourceTree = ""; }; + 57FF04135B01341C5846A35E2C100412 /* DGActivityIndicatorDoubleBounceAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorDoubleBounceAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.m; sourceTree = ""; }; + 58E0B8BB45BBC17AC81BD13BF13E3E42 /* Specta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Specta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5A67131DD3E8A77797409C31AD32ECF1 /* DGActivityIndicatorThreeDotsAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorThreeDotsAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.h; sourceTree = ""; }; + 5B3492B4CB56B72013F1118941E24121 /* Specta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Specta.xcconfig; sourceTree = ""; }; + 5B8B84A943FC3581A554618EFECDA70E /* SPTSharedExampleGroups.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTSharedExampleGroups.h; path = Specta/Specta/SPTSharedExampleGroups.h; sourceTree = ""; }; + 5C73FB93AF85307B0D5ABF9CD8C30EED /* ALView+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ALView+PureLayout.m"; path = "PureLayout/PureLayout/ALView+PureLayout.m"; sourceTree = ""; }; + 5DBA37DDE7ABCA9E39467357B4CA0064 /* DGActivityIndicatorRotatingTrigonAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorRotatingTrigonAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.h; sourceTree = ""; }; + 5DF04190C52FF106F02A99E603753BFD /* XCTest+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTest+Private.h"; path = "Specta/Specta/XCTest+Private.h"; sourceTree = ""; }; + 5F3C10A6D080F1EC376E57967C33147C /* DGActivityIndicatorBallClipRotateMultipleAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallClipRotateMultipleAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.h; sourceTree = ""; }; + 60E38EC1C8BF31EF6BE5AF0D57A9D473 /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = ""; }; + 610572C5FF48FAE8A4EC2E3145774D28 /* EXPMatchers+beGreaterThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.m"; sourceTree = ""; }; + 61B4466883A8E7B3BBFBD3CD14084150 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 61BE8EEF2C215C3E4C328250508B5B93 /* EXPBlockDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPBlockDefinedMatcher.m; path = Expecta/EXPBlockDefinedMatcher.m; sourceTree = ""; }; 61DF146816D923BA85792DC9693B94D4 /* Pods-PNImagePickerViewController_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PNImagePickerViewController_Example-umbrella.h"; sourceTree = ""; }; - 6296391EB02733986480B8C3B38C1751 /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Diff.h"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.h"; sourceTree = ""; }; - 63531BD7407ED90996601DCE8FCEFD55 /* ExpectaSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaSupport.h; path = Expecta/ExpectaSupport.h; sourceTree = ""; }; + 61F9F01E426729B0B74AE78CB70A1420 /* ExpectaSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaSupport.h; path = Expecta/ExpectaSupport.h; sourceTree = ""; }; + 62790145E76AE0216D0A5DA79171259E /* SPTSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTSpec.m; path = Specta/Specta/SPTSpec.m; sourceTree = ""; }; + 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 648EEE319F62D61A69EB22EA22C20EE9 /* EXPMatchers+haveCountOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+haveCountOf.h"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.h"; sourceTree = ""; }; 659207AE2EF6E56A99A2880417729552 /* PNImagePickerViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNImagePickerViewController.h; sourceTree = ""; }; - 65B4136A49BEA00E3874E067A148CFE2 /* EXPMatchers+haveCountOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+haveCountOf.h"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.h"; sourceTree = ""; }; - 68FDF6EB112C4423747393766720207C /* SpectaUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaUtility.h; path = Specta/Specta/SpectaUtility.h; sourceTree = ""; }; - 6BF30C23B3BDD819BCFB41457392E2D9 /* PureLayoutDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayoutDefines.h; path = PureLayout/PureLayout/PureLayoutDefines.h; sourceTree = ""; }; - 6D0C6649E2D25AE53519CD3D4CD09ADC /* EXPMatchers+FBSnapshotTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+FBSnapshotTest.h"; sourceTree = ""; }; - 6F7482216BDAA86DA901E47954D81943 /* EXPMatchers+beTruthy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beTruthy.m"; path = "Expecta/Matchers/EXPMatchers+beTruthy.m"; sourceTree = ""; }; - 703612D1CEA30E0B8C9E02D238F7196E /* Specta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Specta-dummy.m"; sourceTree = ""; }; - 70688D0A2ACC0A7F02D0F1235F0E8BF4 /* EXPMatchers+beInTheRangeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInTheRangeOf.h"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.h"; sourceTree = ""; }; + 6704F890B5B53FCFB9BFAAA60C7C716B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 675F976C5776FA3F706E7AC145321969 /* Pods_PNImagePickerViewController_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNImagePickerViewController_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 679988580E3F54F978A9B8C200E86899 /* Specta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Specta.h; path = Specta/Specta/Specta.h; sourceTree = ""; }; + 67BEB743EB822DB344D1FDB79EEB19B9 /* DGActivityIndicatorBallSpinFadeLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallSpinFadeLoader.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.h; sourceTree = ""; }; + 6925CA8B4B659ACD8F9034615203F945 /* EXPFloatTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPFloatTuple.h; path = Expecta/EXPFloatTuple.h; sourceTree = ""; }; + 6A4FDF3878CE27CE988C38AEA6654C5F /* EXPDoubleTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPDoubleTuple.m; path = Expecta/EXPDoubleTuple.m; sourceTree = ""; }; + 6B82DA15E8DCF7611B8AA156171B0145 /* DGActivityIndicatorRotatingTrigonAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorRotatingTrigonAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingTrigonAnimation.m; sourceTree = ""; }; + 6BA1D311BEC86CB50A8E8842C358FD66 /* EXPMatchers+beTruthy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beTruthy.h"; path = "Expecta/Matchers/EXPMatchers+beTruthy.h"; sourceTree = ""; }; + 6CEADD0E53710547430DAF55D9581DEA /* Specta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Specta-prefix.pch"; sourceTree = ""; }; + 6F7AFA9E0DB6AED75E6E050A50321F0C /* DGActivityIndicatorRotatingSquaresAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorRotatingSquaresAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.h; sourceTree = ""; }; + 6FAD67A3E9EF3B4766AC08DCC824CD0C /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; + 6FD85F8EB5968E2DAB76715F87DC13B1 /* ExpectaObject+FBSnapshotTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ExpectaObject+FBSnapshotTest.m"; sourceTree = ""; }; + 7136FE62CB53268676DCD2D374D43CE5 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 714D907B92028E0BD968F8D41D05C0B6 /* EXPMatchers+contain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+contain.h"; path = "Expecta/Matchers/EXPMatchers+contain.h"; sourceTree = ""; }; 72F2DDEC55FD77846852BF0BF7CA2EB1 /* PNImagePickerViewController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNImagePickerViewController-prefix.pch"; sourceTree = ""; }; - 749800021466D47EDC1F64E037BF45CC /* SpectaUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SpectaUtility.m; path = Specta/Specta/SpectaUtility.m; sourceTree = ""; }; 752FC542E7B313CF2DF46F9CE019D1DC /* Pods-PNImagePickerViewController_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNImagePickerViewController_Example-resources.sh"; sourceTree = ""; }; - 76148374B1A8C1EE9BF4C8D44A477428 /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = ""; }; - 7BD87D11D30651D5EB6E5F42D4FCDFFE /* EXPMatchers+beGreaterThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h"; sourceTree = ""; }; - 80156AEEDC4D129C5C54BFFED8633BF6 /* EXPMatchers+beGreaterThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThan.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.m"; sourceTree = ""; }; - 80D1D2F56444ACE235744A744B9C8D67 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 815FCECEE4FF630729054295EC5482B3 /* EXPDoubleTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPDoubleTuple.m; path = Expecta/EXPDoubleTuple.m; sourceTree = ""; }; - 8306A05F3FC954D6F3B4E35C4F6B2E24 /* EXPMatchers+beginWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beginWith.h"; path = "Expecta/Matchers/EXPMatchers+beginWith.h"; sourceTree = ""; }; - 87DC71BCE9F88907D4CA9EA6C6D4CD3A /* NSObject+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Expecta.h"; path = "Expecta/NSObject+Expecta.h"; sourceTree = ""; }; - 88B5C933CDFBD78AAD0546A4AF52B9D5 /* EXPMatchers+beSupersetOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSupersetOf.m"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.m"; sourceTree = ""; }; + 753992C3B40788957CA7E10CC978F9DA /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = ""; }; + 764E05BA4B42E70C21008CE02BECEE4C /* EXPMatchers+beLessThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.m"; sourceTree = ""; }; + 771C132970255F43C156A67EB86CA041 /* EXPMatchers+raise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raise.m"; path = "Expecta/Matchers/EXPMatchers+raise.m"; sourceTree = ""; }; + 772058E89925821FF10E46546AF9B4B4 /* DGActivityIndicatorBallScaleRippleAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallScaleRippleAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleAnimation.h; sourceTree = ""; }; + 77464E2D7487045EDA840C92E186223F /* DGActivityIndicatorBallZigZagAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallZigZagAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.m; sourceTree = ""; }; + 77BD465B0699C84B403C14801297E94E /* DGActivityIndicatorTwoDotsAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorTwoDotsAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorTwoDotsAnimation.h; sourceTree = ""; }; + 78F835552B0C0149CC969BF4A9C0FD39 /* EXPMatchers+beSupersetOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSupersetOf.m"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.m"; sourceTree = ""; }; + 79C8373476354107A7B6604FF88E8598 /* EXPMatchers+equal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+equal.h"; path = "Expecta/Matchers/EXPMatchers+equal.h"; sourceTree = ""; }; + 7A1252F4328A210FDB908CC835FD7C61 /* PNImagePickerViewController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PNImagePickerViewController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7AC957DEF87E6A9F6B306C7388893038 /* Expecta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta-dummy.m"; sourceTree = ""; }; + 7B459F17FC9666AABCB0A418168C4AEF /* EXPMatchers+beFalsy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beFalsy.m"; path = "Expecta/Matchers/EXPMatchers+beFalsy.m"; sourceTree = ""; }; + 7B6B8EA0D93F6E424061F592524B5E23 /* EXPMatchers+beFalsy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beFalsy.h"; path = "Expecta/Matchers/EXPMatchers+beFalsy.h"; sourceTree = ""; }; + 7F17C1DA9A37564AFCBA6087CEF966A7 /* SpectaUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaUtility.h; path = Specta/Specta/SpectaUtility.h; sourceTree = ""; }; + 80838666592F62DAE85097BA42B18413 /* NSLayoutConstraint+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+PureLayout.m"; path = "PureLayout/PureLayout/NSLayoutConstraint+PureLayout.m"; sourceTree = ""; }; + 80CB643444B41D3FBF41836835733076 /* Expecta_Snapshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta_Snapshots.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 82D4DFA38A6720F4452C89F137B0F627 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 83762AE8688F62BAFCA4942A7D46C455 /* EXPMatchers+haveCountOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+haveCountOf.m"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.m"; sourceTree = ""; }; + 846879E2D22F994BD70101FDF003244F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8599925B3BA781F682EE8EC7602BB199 /* DGActivityIndicatorBallPulseSyncAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallPulseSyncAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.h; sourceTree = ""; }; + 87F25E0962F435F50F7CAEEB293016B1 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; + 8840BCEBAAC747B222A9A3A4F0AC735C /* SPTGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTGlobalBeforeAfterEach.h; path = Specta/Specta/SPTGlobalBeforeAfterEach.h; sourceTree = ""; }; + 885E0076902084EA9C5460FDC6349ADE /* EXPBlockDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPBlockDefinedMatcher.h; path = Expecta/EXPBlockDefinedMatcher.h; sourceTree = ""; }; 88BD5BA29761B79241CFE6925C3ABA4B /* Pods-PNImagePickerViewController_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-PNImagePickerViewController_Tests.modulemap"; sourceTree = ""; }; - 89B4983E65DB1A8DD67F7A9D82A5CBBE /* ExpectaObject+FBSnapshotTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ExpectaObject+FBSnapshotTest.m"; sourceTree = ""; }; - 8AAA1981FD0C38B91AE527BE960EE881 /* SPTExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExample.h; path = Specta/Specta/SPTExample.h; sourceTree = ""; }; - 8B977762C348A6EDA1883600F1DCFE58 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; - 8CADF593C95BE01C0B91DBC2C8884939 /* Specta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Specta.modulemap; sourceTree = ""; }; - 8E64F0B58141D2A8C5B35D8B7E1D76E0 /* ALView+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ALView+PureLayout.m"; path = "PureLayout/PureLayout/ALView+PureLayout.m"; sourceTree = ""; }; - 8EBE0B34BA8C3C5428B651C33628FFEC /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; }; - 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 901657B874B99B4D8BAC6029F1239819 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 90A24E859872FBF4996DB8FF2C72D641 /* PureLayout+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PureLayout+Internal.h"; path = "PureLayout/PureLayout/PureLayout+Internal.h"; sourceTree = ""; }; - 9106954FD71A00CE85BF2799C2328977 /* EXPMatchers+beInTheRangeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInTheRangeOf.m"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.m"; sourceTree = ""; }; - 91F059E3298F34C1DD6BD93980CD997D /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; + 8979CFB2689073F8D1DF5E94BA8CD0D4 /* DGActivityIndicatorLineScalePulseOutRapidAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorLineScalePulseOutRapidAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.m; sourceTree = ""; }; + 89880E23D0FA533965CB9034C799F6CC /* DGActivityIndicatorBallZigZagAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallZigZagAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagAnimation.h; sourceTree = ""; }; + 89EBAB4863EEC88B938996CB37083008 /* EXPMatcherHelpers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPMatcherHelpers.m; path = Expecta/Matchers/EXPMatcherHelpers.m; sourceTree = ""; }; + 8A6225907238E19AEB89FC94B661C1BB /* NSValue+Expecta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+Expecta.m"; path = "Expecta/NSValue+Expecta.m"; sourceTree = ""; }; + 8C0D7CB5FC931065DA98924EF0C18C9A /* DGActivityIndicatorDoubleBounceAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorDoubleBounceAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorDoubleBounceAnimation.h; sourceTree = ""; }; + 8C28643FBB85D0B0E3DB9EB77F8ECF6B /* Expecta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8E46BD9C49F3823060B10F976D221685 /* DGActivityIndicatorBallClipRotateMultipleAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallClipRotateMultipleAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateMultipleAnimation.m; sourceTree = ""; }; + 8FF45B8EC7AC741DAE4A3906D41CE9A6 /* SpectaTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaTypes.h; path = Specta/Specta/SpectaTypes.h; sourceTree = ""; }; + 92007BBA6C6286B9D00F2CBDA8804B19 /* ExpectaObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaObject.h; path = Expecta/ExpectaObject.h; sourceTree = ""; }; + 9288E8E5355BD1DF560F5E2FA67CBD27 /* EXPExpect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPExpect.h; path = Expecta/EXPExpect.h; sourceTree = ""; }; 93BEE7CACAD612FBBE99E8998D378EA4 /* Pods-PNImagePickerViewController_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNImagePickerViewController_Example.debug.xcconfig"; sourceTree = ""; }; - 957CBE35D3FC82EDC76EDF33D58CC14A /* SPTSharedExampleGroups.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTSharedExampleGroups.h; path = Specta/Specta/SPTSharedExampleGroups.h; sourceTree = ""; }; - 96722169F2EE7FD1D3A8A151F68B4997 /* EXPMatchers+raise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raise.m"; path = "Expecta/Matchers/EXPMatchers+raise.m"; sourceTree = ""; }; - 9BE9B9F15F1FC0C7BDDA5C9ED0AF220F /* PNImagePickerViewController.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PNImagePickerViewController.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 94E4469B3C95C5216684C7829AAB232C /* EXPMatchers+beInTheRangeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInTheRangeOf.m"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.m"; sourceTree = ""; }; + 98514AA1F7289BA23089765DE7CF1D6C /* EXPMatchers+FBSnapshotTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+FBSnapshotTest.h"; sourceTree = ""; }; + 9A068609FD5C803077DC8C2042170535 /* DGActivityIndicatorBallScaleRippleMultipleAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallScaleRippleMultipleAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleRippleMultipleAnimation.m; sourceTree = ""; }; + 9A89178F3121D6F08D3FF64FF460D24F /* XCTestCase+Specta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTestCase+Specta.h"; path = "Specta/Specta/XCTestCase+Specta.h"; sourceTree = ""; }; + 9B06A2507AD127178779415EC9208241 /* DGActivityIndicatorBallPulseAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallPulseAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.m; sourceTree = ""; }; 9CE6DF46652A13B55C1A75A6C5257818 /* NSString+HexColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+HexColor.h"; sourceTree = ""; }; - 9EDA6325E8E3E42FBA74C8D748457683 /* PureLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PureLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9D5DFE769CE7D7DF02A2EDF9A8B73562 /* EXPMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcher.h; path = Expecta/EXPMatcher.h; sourceTree = ""; }; + 9D827829DB6BCFF0311053AA2EE01B35 /* EXPMatchers+conformTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+conformTo.h"; path = "Expecta/Matchers/EXPMatchers+conformTo.h"; sourceTree = ""; }; + 9EA5EE4F2D75BEE67F35007E14EBA343 /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Diff.h"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.h"; sourceTree = ""; }; + 9EE10AFD4359597AA6CBCC8336E29234 /* EXPMatchers+beInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInstanceOf.h"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.h"; sourceTree = ""; }; 9FB8B39DAF075037CE45C64C5EC44A54 /* Pods-PNImagePickerViewController_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNImagePickerViewController_Tests-resources.sh"; sourceTree = ""; }; - A2B5894FEB35480FC1B773A4D38D14DF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A3238F2F8580E2D38D5628A33F934CFA /* FBSnapshotTestController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestController.m; path = FBSnapshotTestCase/FBSnapshotTestController.m; sourceTree = ""; }; - A6922487AB8095FA4A248866B59E44EB /* SPTCallSite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTCallSite.h; path = Specta/Specta/SPTCallSite.h; sourceTree = ""; }; - A823928D76472F638E2F3C697450BDB5 /* Expecta_Snapshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta_Snapshots.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - AA01D298630B12AA0970C55ADF492FE2 /* Specta-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Specta-umbrella.h"; sourceTree = ""; }; - AA07840C0EE1A07210D7D9A95B28E2D6 /* Expecta+Snapshots.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Expecta+Snapshots.modulemap"; sourceTree = ""; }; - AA101E016C76302C06F4575172FDC9DE /* EXPBlockDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPBlockDefinedMatcher.h; path = Expecta/EXPBlockDefinedMatcher.h; sourceTree = ""; }; - AA729BBF9CB238789CCA63E476AEA5CE /* EXPMatcherHelpers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcherHelpers.h; path = Expecta/Matchers/EXPMatcherHelpers.h; sourceTree = ""; }; - AA7B81ED73344E500125187115387A8F /* EXPMatchers+match.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+match.h"; path = "Expecta/Matchers/EXPMatchers+match.h"; sourceTree = ""; }; - AADBF70B3B9D2D9143BFF2AC688B29D1 /* SPTExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExample.m; path = Specta/Specta/SPTExample.m; sourceTree = ""; }; - AC25E36ECB984C6D46E07D449F8E6AD3 /* EXPMatchers+FBSnapshotTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+FBSnapshotTest.m"; sourceTree = ""; }; + A0C161BBA8F108FF47EF6C02DC5CB263 /* EXPDoubleTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDoubleTuple.h; path = Expecta/EXPDoubleTuple.h; sourceTree = ""; }; + A1C2992E3B24E991EF0EE4F073D749B2 /* DGActivityIndicatorTriplePulseAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorTriplePulseAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorTriplePulseAnimation.h; sourceTree = ""; }; + A321EAD55888DD6044ADE41E2DA2D1F0 /* DGActivityIndicatorBallZigZagDeflectAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallZigZagDeflectAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallZigZagDeflectAnimation.m; sourceTree = ""; }; + A4177993DB3B97042D48FC5AF4848F87 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; + A54A9028274D06409CC2977B0E10BFBC /* Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Expecta.h; path = Expecta/Expecta.h; sourceTree = ""; }; + A673437D364C508C96D2396BF29B248C /* DGActivityIndicatorBallClipRotateAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallClipRotateAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.m; sourceTree = ""; }; + AABFF02278A23BB1221E222182084C49 /* EXPMatchers+beKindOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beKindOf.h"; path = "Expecta/Matchers/EXPMatchers+beKindOf.h"; sourceTree = ""; }; + AAD647C23E9EA90B3425D677A9CA612B /* DGActivityIndicatorLineScalePulseOutAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorLineScalePulseOutAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutAnimation.m; sourceTree = ""; }; ACEB5B1D16C37F59E5D415018626CCA1 /* Pods-PNImagePickerViewController_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNImagePickerViewController_Tests.debug.xcconfig"; sourceTree = ""; }; - AD498EF1F11DF000A23462687DB4F486 /* EXPMatchers+raise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raise.h"; path = "Expecta/Matchers/EXPMatchers+raise.h"; sourceTree = ""; }; - AF42AAF54B5A41D37200E11671FFA6E8 /* EXPMatchers+beNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beNil.h"; path = "Expecta/Matchers/EXPMatchers+beNil.h"; sourceTree = ""; }; - AF51448F8D892B8D7E10576612FBA77A /* ExpectaObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaObject.h; path = Expecta/ExpectaObject.h; sourceTree = ""; }; - AF5617EDFECDB96475E8797AE4B46329 /* Specta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Specta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AD46F573951121EAE28BB449BDAEABA0 /* DGActivityIndicatorBallClipRotateAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallClipRotateAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotateAnimation.h; sourceTree = ""; }; + B0D8176E92EDD13A72FC541922FADBC6 /* EXPMatchers+beginWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beginWith.h"; path = "Expecta/Matchers/EXPMatchers+beginWith.h"; sourceTree = ""; }; B14A4098A520661746E764122D3AFC5A /* Pods-PNImagePickerViewController_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-PNImagePickerViewController_Example.modulemap"; sourceTree = ""; }; - B19A9279E73679D3F9F1DFAEA13E347C /* SPTExampleGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExampleGroup.h; path = Specta/Specta/SPTExampleGroup.h; sourceTree = ""; }; - B3E4CD3EBCF888648A5FDAC1B196AF58 /* Expecta+Snapshots-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-umbrella.h"; sourceTree = ""; }; - B73FA83187F6E3585C08B5C189A6F033 /* EXPDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDefines.h; path = Expecta/EXPDefines.h; sourceTree = ""; }; + B2D07280905270153CB51BE84E603490 /* DGActivityIndicatorRotatingSquaresAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorRotatingSquaresAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorRotatingSquaresAnimation.m; sourceTree = ""; }; + B52800E45378B2979869F16338D3491A /* EXPMatchers+beSupersetOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSupersetOf.h"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.h"; sourceTree = ""; }; + B59163A00563EBC5A37B41B9BA8B1C18 /* DGActivityIndicatorBallGridPulseAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallGridPulseAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.m; sourceTree = ""; }; + B617A7263E6B83D90E05503FE0460B91 /* Specta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Specta.modulemap; sourceTree = ""; }; + B625AD940476D7EFD3A306E5DC19F876 /* SPTTestSuite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTTestSuite.h; path = Specta/Specta/SPTTestSuite.h; sourceTree = ""; }; + B64EB1329E44F12CA40EB9CD47E3D2E3 /* DGActivityIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorView.h; path = DGActivityIndicatorView/DGActivityIndicatorView.h; sourceTree = ""; }; + B6FCE907E679A8E3E3FBF5283FF58457 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; + B8B275EDDCDCF2D38CAF49A40017D01D /* SPTExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExample.h; path = Specta/Specta/SPTExample.h; sourceTree = ""; }; + BA5A98474C98EBC8C205B1A4E3EE6C27 /* NSObject+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Expecta.h"; path = "Expecta/NSObject+Expecta.h"; sourceTree = ""; }; BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - BB4F841C6A0CF76946BB788A161240EA /* EXPMatchers+beKindOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beKindOf.h"; path = "Expecta/Matchers/EXPMatchers+beKindOf.h"; sourceTree = ""; }; - BC4E6D745DD948298DA344813F4F67D4 /* PureLayout-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PureLayout-umbrella.h"; sourceTree = ""; }; + BB13355693092488ACB838CACE12EB64 /* DGActivityIndicatorTripleRingsAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorTripleRingsAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorTripleRingsAnimation.m; sourceTree = ""; }; + BD09CC45A3B67ED88F774603432C5C9B /* Expecta+Snapshots.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Expecta+Snapshots.xcconfig"; sourceTree = ""; }; + BD26CEA7F827DE4BBA98A4BDD93A9D93 /* EXPMatchers+beNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beNil.h"; path = "Expecta/Matchers/EXPMatchers+beNil.h"; sourceTree = ""; }; + BD77462827262F193DA14BEBD1C3E231 /* DGActivityIndicatorBallClipRotatePulseAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallClipRotatePulseAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.h; sourceTree = ""; }; + BDD6AEA3AAE1E01362FA42A2A36ECEFC /* DGActivityIndicatorView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DGActivityIndicatorView.xcconfig; sourceTree = ""; }; BE3F27961738F25BC58F8322179B8364 /* PNCollectionViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNCollectionViewCell.m; sourceTree = ""; }; - C12D30394F19452C8D319BD3A8525FBE /* PNImagePickerViewController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PNImagePickerViewController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C1EF7A5D7462BAA91E23F816C1B96180 /* EXPMatchers+beKindOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beKindOf.m"; path = "Expecta/Matchers/EXPMatchers+beKindOf.m"; sourceTree = ""; }; - C3F02F121BD9AAA950DEC5C89D564638 /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = ""; }; + C0373372700C722F5A96C4CFC6C54199 /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; }; + C05B54046664B54E8EE624F979B2014C /* DGActivityIndicatorLineScaleAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorLineScaleAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorLineScaleAnimation.h; sourceTree = ""; }; + C1C2B7979A25FBEC9F71A189D1EE51AA /* SPTCallSite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTCallSite.h; path = Specta/Specta/SPTCallSite.h; sourceTree = ""; }; + C2349F032C22C7888A00A0C1F10CAB77 /* DGActivityIndicatorBallScaleMultipleAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallScaleMultipleAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.h; sourceTree = ""; }; + C2CDEC51745442357360815D430E5D9B /* PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayout.h; path = PureLayout/PureLayout/PureLayout.h; sourceTree = ""; }; + C387054DBA65DDD2001A2B4720437721 /* Expecta+Snapshots.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Expecta+Snapshots.modulemap"; sourceTree = ""; }; C3F40FED1E15AC795397B1F66824BC1E /* ResourceBundle-PNImagePickerViewController-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-PNImagePickerViewController-Info.plist"; sourceTree = ""; }; - C3F844297B8662ADF09537912FAC73ED /* EXPMatchers+beSupersetOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSupersetOf.h"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.h"; sourceTree = ""; }; - C42C93ADD945A4372635BD32CAD3C814 /* ExpectaObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaObject.m; path = Expecta/ExpectaObject.m; sourceTree = ""; }; - C58ECDACD8D2FD15B5D6F0D6276B0700 /* Specta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Specta.h; path = Specta/Specta/Specta.h; sourceTree = ""; }; - C67A01B644DD8AC9FAB6D7E50DCB62FF /* Specta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Specta-prefix.pch"; sourceTree = ""; }; + C4B622E36D00B0EC421438CD40968EE0 /* EXPMatchers+beCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beCloseTo.m"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.m"; sourceTree = ""; }; + C4FB6B0CDBAB4083C9950033DDC89E7B /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Compare.m"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.m"; sourceTree = ""; }; + C6BCE9F9EA5BD670ED777D7EA338E063 /* DGActivityIndicatorBallSpinFadeLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallSpinFadeLoader.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallSpinFadeLoader.m; sourceTree = ""; }; C6E39DC4C4570C3FCD7D5264E2865BAB /* Pods-PNImagePickerViewController_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PNImagePickerViewController_Tests-acknowledgements.plist"; sourceTree = ""; }; - C71086A693BC5E296E2F30B405EEC247 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - C764B935846E8C662CCF7906D8A555DA /* EXPMatchers+respondTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+respondTo.m"; path = "Expecta/Matchers/EXPMatchers+respondTo.m"; sourceTree = ""; }; + C73633D42F997BB2CC5F7CD317983428 /* Expecta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C863C942C44C853A7970FB91BB4D3843 /* SPTSharedExampleGroups.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTSharedExampleGroups.m; path = Specta/Specta/SPTSharedExampleGroups.m; sourceTree = ""; }; + C96C01D1E4D2E00FED4476FA06FA5287 /* NSArray+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+PureLayout.m"; path = "PureLayout/PureLayout/NSArray+PureLayout.m"; sourceTree = ""; }; + CA568B6F1164CDE3763C92982FDF0B80 /* DGActivityIndicatorThreeDotsAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorThreeDotsAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorThreeDotsAnimation.m; sourceTree = ""; }; CA9637AFF7146F0DA6D5F4D8A13DFECA /* PNImagePickerViewController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNImagePickerViewController-dummy.m"; sourceTree = ""; }; - CB278C4D8E22AB0B2386C27A5DC84F44 /* EXPMatchers+endWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+endWith.m"; path = "Expecta/Matchers/EXPMatchers+endWith.m"; sourceTree = ""; }; - CC4EC6D3BB6C4AAB71B02968CCEB66EA /* XCTestCase+Specta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestCase+Specta.m"; path = "Specta/Specta/XCTestCase+Specta.m"; sourceTree = ""; }; - CE7DBAFD56D35A84CC36342276EA5A27 /* EXPMatchers+conformTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+conformTo.h"; path = "Expecta/Matchers/EXPMatchers+conformTo.h"; sourceTree = ""; }; + CE45EB99FCDFDCD71A41117E18C36C41 /* DGActivityIndicatorBallRotateAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallRotateAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallRotateAnimation.m; sourceTree = ""; }; + CE4B6F2352BB68D81B8E851154276590 /* DGActivityIndicatorLineScalePartyAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorLineScalePartyAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePartyAnimation.m; sourceTree = ""; }; + CE68526079FF32AB937DB3E25C280551 /* Expecta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Expecta.xcconfig; sourceTree = ""; }; + CE86A4579EC09DC343B5C10D9079AB56 /* DGActivityIndicatorBallClipRotatePulseAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallClipRotatePulseAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallClipRotatePulseAnimation.m; sourceTree = ""; }; CE96BE4D508513697B2AE8807F0073AE /* Pods-PNImagePickerViewController_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PNImagePickerViewController_Example-acknowledgements.plist"; sourceTree = ""; }; - D26170D9FFE0101C1DC15C07C5AC2494 /* Pods_PNImagePickerViewController_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNImagePickerViewController_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D32A0E3BF4F5096301528945D03203B2 /* EXPMatchers+beNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beNil.m"; path = "Expecta/Matchers/EXPMatchers+beNil.m"; sourceTree = ""; }; + D06F3815D256490933E1D4389056447C /* DGActivityIndicatorView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = DGActivityIndicatorView.modulemap; sourceTree = ""; }; + D1C1EE0EB550603FC231CDB277A7CF74 /* EXPMatchers+beLessThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h"; sourceTree = ""; }; + D223EAA67BE5A2DD55396646D758BE37 /* DGActivityIndicatorView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DGActivityIndicatorView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D352AED853C0AAE46F02D684528ED717 /* EXPMatchers+beNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beNil.m"; path = "Expecta/Matchers/EXPMatchers+beNil.m"; sourceTree = ""; }; D379A5C7BC685C47EB0D3A2731BB215D /* PNImagePickerViewController.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = PNImagePickerViewController.modulemap; sourceTree = ""; }; D45CEC3FA189AD45AE0D5D65F0096A2E /* Pods-PNImagePickerViewController_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNImagePickerViewController_Tests-frameworks.sh"; sourceTree = ""; }; - D4DBA040A9E2814F4869DD7B7B7E4F98 /* Expecta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D57C30E845781EF631DAF7DE8BA6859E /* FBSnapshotTestController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestController.m; path = FBSnapshotTestCase/FBSnapshotTestController.m; sourceTree = ""; }; + D69CE0A8AA791901A9E680B47741DC73 /* PureLayout-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PureLayout-umbrella.h"; sourceTree = ""; }; D78F728DA45B9D043472FCF4315E60C7 /* Pods-PNImagePickerViewController_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNImagePickerViewController_Tests.release.xcconfig"; sourceTree = ""; }; - D7B03B244D464496A92ACED43DA0DE3D /* ExpectaSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaSupport.m; path = Expecta/ExpectaSupport.m; sourceTree = ""; }; - DC7DF335401532E474FB05944C1ED485 /* EXPMatchers+beGreaterThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThan.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.h"; sourceTree = ""; }; - DD4E5110B5ED80C99A3F9576C46C4672 /* NSValue+Expecta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+Expecta.m"; path = "Expecta/NSValue+Expecta.m"; sourceTree = ""; }; - DD8F605551C2300C9C46FB3364564F6D /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; }; - DDE582482FAF1CEB39F0B9126CC59D6D /* ExpectaObject+FBSnapshotTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ExpectaObject+FBSnapshotTest.h"; sourceTree = ""; }; - DEEE8F25AEEDB29355650590026262C0 /* EXPFloatTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPFloatTuple.m; path = Expecta/EXPFloatTuple.m; sourceTree = ""; }; - E172DFC29EE8C2A36AEC06644DCCA25D /* SPTSharedExampleGroups.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTSharedExampleGroups.m; path = Specta/Specta/SPTSharedExampleGroups.m; sourceTree = ""; }; - E3CB665E7978D3A27C3461E4A59F8AA2 /* PureLayout.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = PureLayout.modulemap; sourceTree = ""; }; - E6E6D4534F1730616FF47535F95B2D36 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E6F5F421366F1062F96C25902DB7BFD2 /* PureLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PureLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D9FF93A6D3CD60EFD7678282FCA20D3D /* DGActivityIndicatorTriangleSkewSpinAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorTriangleSkewSpinAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorTriangleSkewSpinAnimation.m; sourceTree = ""; }; + DA2A625BE88D329B2DAB468A14D454E5 /* DGActivityIndicatorBallPulseAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallPulseAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseAnimation.h; sourceTree = ""; }; + DB70BDEEF19D8835410FFAA325A803E6 /* DGActivityIndicatorView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DGActivityIndicatorView-umbrella.h"; sourceTree = ""; }; + DB70E3EFF32FDB6FFA85E1F22E6A61AB /* EXPUnsupportedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPUnsupportedObject.h; path = Expecta/EXPUnsupportedObject.h; sourceTree = ""; }; + DCD2DE470DD0C352D53BB989F844C45B /* EXPMatchers+beIdenticalTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beIdenticalTo.m"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.m"; sourceTree = ""; }; + DDBEB2F265DE738C0F7887C020B1F28D /* EXPMatchers+beSubclassOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSubclassOf.m"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.m"; sourceTree = ""; }; + DF86B44B7E35819FC61B294B343E31FB /* EXPMatchers+beLessThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThan.h"; path = "Expecta/Matchers/EXPMatchers+beLessThan.h"; sourceTree = ""; }; + E1C6AA1B6F3BCCCDE553A56C33EB4649 /* DGActivityIndicatorBallGridBeatAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallGridBeatAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridBeatAnimation.h; sourceTree = ""; }; + E1D4DDB7EEFD7F398CD60BFB0FEE4F7E /* NSLayoutConstraint+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+PureLayout.h"; path = "PureLayout/PureLayout/NSLayoutConstraint+PureLayout.h"; sourceTree = ""; }; + E1F1BBA6B7B557D5FF0A3171482F0D67 /* EXPFloatTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPFloatTuple.m; path = Expecta/EXPFloatTuple.m; sourceTree = ""; }; + E2B98CB95EBDDC9E87241B77A46E1266 /* EXPMatchers+respondTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+respondTo.h"; path = "Expecta/Matchers/EXPMatchers+respondTo.h"; sourceTree = ""; }; + E2FEA90ADE9DB7B03273630AB276F8DD /* EXPUnsupportedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPUnsupportedObject.m; path = Expecta/EXPUnsupportedObject.m; sourceTree = ""; }; + E406AD314CFBBF655B9B07A0F8EE6325 /* PureLayout.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PureLayout.xcconfig; sourceTree = ""; }; + E414D62B6F3A82E4E06FB2313C8FD3D9 /* DGActivityIndicatorBallScaleAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallScaleAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleAnimation.m; sourceTree = ""; }; + E54DECB7356E53FC52ED067B347499E3 /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; }; + E567BB4987D9A997C1EE3F4644EEF81A /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = ""; }; + E5C01C3973EEA5683DAF2A21243EE5D0 /* DGActivityIndicatorCookieTerminatorAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorCookieTerminatorAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorCookieTerminatorAnimation.h; sourceTree = ""; }; + E62ACE7ECFAD595BCFDB74843AD1A4D2 /* EXPMatchers+beginWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beginWith.m"; path = "Expecta/Matchers/EXPMatchers+beginWith.m"; sourceTree = ""; }; + E66E28010AC741AB1BA3E3EF6F8784AB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E6E4BAE650A258C80DA6C0499041E875 /* DGActivityIndicatorBallGridPulseAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorBallGridPulseAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallGridPulseAnimation.h; sourceTree = ""; }; E8D774152B4DC4C8DD12BEACA9AC7949 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - ECF097833A853FF056370CCA06DA4831 /* EXPMatchers+beSubclassOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSubclassOf.m"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.m"; sourceTree = ""; }; - EF3299BF94C0392FCBAA98D2E58CB10E /* EXPMatchers+contain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+contain.h"; path = "Expecta/Matchers/EXPMatchers+contain.h"; sourceTree = ""; }; - F0BE4B0FD430ED5364A83BE6EFAB44E3 /* EXPMatchers+beLessThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h"; sourceTree = ""; }; - F2326EBC2CEBEDD1AC39E41341CE4A96 /* SPTCallSite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCallSite.m; path = Specta/Specta/SPTCallSite.m; sourceTree = ""; }; - F3844FAB6104C0385AC09C2DC5801A0C /* Pods_PNImagePickerViewController_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNImagePickerViewController_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F42F0DA116857769307897100F7DA2CA /* NSArray+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+PureLayout.h"; path = "PureLayout/PureLayout/NSArray+PureLayout.h"; sourceTree = ""; }; - F65C9454F6F8DB1D7E3FFDE17F54D58C /* EXPMatchers+beGreaterThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.m"; sourceTree = ""; }; - F6EB583A0E0B95BC98422547435C1DB8 /* EXPBlockDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPBlockDefinedMatcher.m; path = Expecta/EXPBlockDefinedMatcher.m; sourceTree = ""; }; - F890E1326443FD6C451595F103347DE3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FA9AA960F05653C47EB2662A7E0E3796 /* EXPMatchers+beginWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beginWith.m"; path = "Expecta/Matchers/EXPMatchers+beginWith.m"; sourceTree = ""; }; - FAD450F231B69F75615E743CE1ED2B4C /* EXPMatchers+postNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+postNotification.m"; path = "Expecta/Matchers/EXPMatchers+postNotification.m"; sourceTree = ""; }; - FB37123DB4D2486C30EA392F17BF7505 /* EXPDoubleTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDoubleTuple.h; path = Expecta/EXPDoubleTuple.h; sourceTree = ""; }; - FB445B211C424686C720B085874E2EF7 /* EXPMatchers+raiseWithReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raiseWithReason.m"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.m"; sourceTree = ""; }; - FB6EF84A0C4781A668F2F6F76CE56AC4 /* PhotosUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PhotosUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/PhotosUI.framework; sourceTree = DEVELOPER_DIR; }; + E9B66B9D8E9FC2BFAE108DE3D5AA312A /* EXPMatchers+postNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+postNotification.m"; path = "Expecta/Matchers/EXPMatchers+postNotification.m"; sourceTree = ""; }; + EABC475F73AEA8FA59A4B0801F74AA37 /* DGActivityIndicatorLineScalePulseOutRapidAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorLineScalePulseOutRapidAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorLineScalePulseOutRapidAnimation.h; sourceTree = ""; }; + EB0A71B16F5C2D5C9C819687D0C69620 /* DGActivityIndicatorBallScaleMultipleAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallScaleMultipleAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallScaleMultipleAnimation.m; sourceTree = ""; }; + EC588B9EAC9440EF09B75FB3972C07FE /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; }; + ECD245CC42C29877A9AF78AE8929E082 /* Expecta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-prefix.pch"; sourceTree = ""; }; + EE008D26EADDB7377223D1A256D4A042 /* EXPMatchers+beKindOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beKindOf.m"; path = "Expecta/Matchers/EXPMatchers+beKindOf.m"; sourceTree = ""; }; + EF5C76DECE92DA64A72713CE941E3C95 /* SPTExampleGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExampleGroup.h; path = Specta/Specta/SPTExampleGroup.h; sourceTree = ""; }; + EFBF8625F2ED19045943D71291B07685 /* SwiftSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftSupport.swift; path = FBSnapshotTestCase/SwiftSupport.swift; sourceTree = ""; }; + F043D41411071EB7695F7E6EB5053E80 /* DGActivityIndicatorFiveDotsAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorFiveDotsAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.m; sourceTree = ""; }; + F10C730C1F2B28DC275C7E9224BAD0BB /* Specta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Specta-dummy.m"; sourceTree = ""; }; + F165E22E40244ACAC4A5654CBA5E24E3 /* DGActivityIndicatorFiveDotsAnimation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorFiveDotsAnimation.h; path = DGActivityIndicatorView/Animations/DGActivityIndicatorFiveDotsAnimation.h; sourceTree = ""; }; + F1D7E4093E6B50AFFDDC307917C04C4D /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = ""; }; + F24F9340428DE453F3C634E811179751 /* EXPMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatchers.h; path = Expecta/Matchers/EXPMatchers.h; sourceTree = ""; }; + F300B40AFA24F8C5A0751AA0E0AE0E17 /* DGActivityIndicatorBallBeatAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallBeatAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallBeatAnimation.m; sourceTree = ""; }; + F3AA3C32FD65264ED12C1A3F34412C16 /* NSArray+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+PureLayout.h"; path = "PureLayout/PureLayout/NSArray+PureLayout.h"; sourceTree = ""; }; + F449D81313C96AAC3E90BF988280AD6E /* Expecta+Snapshots-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-umbrella.h"; sourceTree = ""; }; + F45F565AABE7E9D19116A5DE203B8C68 /* EXPDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDefines.h; path = Expecta/EXPDefines.h; sourceTree = ""; }; + F53616AA4174D5EDA86EA86C95B64FAB /* SPTSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTSpec.h; path = Specta/Specta/SPTSpec.h; sourceTree = ""; }; + F6582E177A6873639EB320360C612D23 /* PureLayout+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PureLayout+Internal.h"; path = "PureLayout/PureLayout/PureLayout+Internal.h"; sourceTree = ""; }; + F69A3ACAB5FFEC146FBA6197D8D480F9 /* EXPMatchers+endWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+endWith.m"; path = "Expecta/Matchers/EXPMatchers+endWith.m"; sourceTree = ""; }; + F86EE1376A385A9872D6CF81FF978865 /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; + F8E15F4958152B93F7A51B41A49F06B7 /* DGActivityIndicatorAnimationProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DGActivityIndicatorAnimationProtocol.h; path = DGActivityIndicatorView/DGActivityIndicatorAnimationProtocol.h; sourceTree = ""; }; + F918A586B727C1A846EE70BA920641D6 /* PureLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PureLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F9F30D12FC93A9FE85BA9E280CA47F0C /* DGActivityIndicatorView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DGActivityIndicatorView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FBC0ACFB085C4A58604D3E412ED62FBA /* EXPMatchers+beGreaterThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThan.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.m"; sourceTree = ""; }; + FC0E127EF1B41A9DCD8E34A51AA4A385 /* DGActivityIndicatorBallPulseSyncAnimation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DGActivityIndicatorBallPulseSyncAnimation.m; path = DGActivityIndicatorView/Animations/DGActivityIndicatorBallPulseSyncAnimation.m; sourceTree = ""; }; + FD36B3A8AA77E453552AF13CEF72A54C /* Expecta+Snapshots-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta+Snapshots-dummy.m"; sourceTree = ""; }; FE1A6C6BC96129C4BD3805467E03F49C /* Pods-PNImagePickerViewController_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PNImagePickerViewController_Tests-dummy.m"; sourceTree = ""; }; - FEB36DA91AA655F244A3A65C2737019B /* Expecta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Expecta.modulemap; sourceTree = ""; }; - FF49B4C3C61836DE302F437C919A7A05 /* EXPExpect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPExpect.h; path = Expecta/EXPExpect.h; sourceTree = ""; }; + FEBD832ABC4328AADF090068DCE1D5C0 /* SpectaDSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaDSL.h; path = Specta/Specta/SpectaDSL.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 41131740B636263BD1EEEC1AE48A5FE5 /* Frameworks */ = { + 25491B57A89B60E4351CB86DCBD45605 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B0879F635160F10BB9A8820E97A6ABEA /* Foundation.framework in Frameworks */, - 2E1FAA5E50BC174E7356BEAC15993B77 /* Photos.framework in Frameworks */, - C46E9249E3A217379AFDEF4E1B1D6D8E /* PhotosUI.framework in Frameworks */, - 6361270EB2EFD4CE80ABB4D9D726BDD1 /* PureLayout.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5FD40AFC02C709F6ED4D9F0C06326705 /* Frameworks */ = { + 3BB815A87B2E552F7E69B3AFBF61E7CE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F78C02E1874FB6F2664E8C242CC13663 /* Foundation.framework in Frameworks */, + C95BAAEDDEA814CFE0ED625B5CC9280E /* Foundation.framework in Frameworks */, + 0E399F119C3EB91C778BE535B0944A2F /* XCTest.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 77C8DC8D8019C7EDE5CC25054CEDA12D /* Frameworks */ = { + 650A130C9C6709D9B126AE89C9FBBDD7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 9A5BA2C580B2C85F85309CA490FABDA6 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 789680DC514CCA110843719424CF5E71 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2949416D5FF64D27E225B0D18B7579FF /* Foundation.framework in Frameworks */, + 4D220E0A716E8D7AEB2D681482CAC058 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 809AE6B927D3E56683D94B1B0F1783BC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 749D2CF67ECC9B40644F76FF48BD76D6 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -507,28 +694,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C3F694A7A9B57150F692CCC6CF809986 /* Frameworks */ = { + A3CA406BDE0E95EC132DE6F080C10C2E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4AE1F0FA07542E17D534D443E55BB63E /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C8A41C7CCA6F30278B15F814DC7A8314 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 75D32A41CF8027A97FD575048AFC035C /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CAA11A0174C8A3D794A30E4E29C61B85 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A1B0E811BF9898CBA7B29B546070BC5E /* Foundation.framework in Frameworks */, - CC6B5A8198B55F9EFB60F446F2FD9BBC /* XCTest.framework in Frameworks */, + F6FEED8BDD67F9018372A8A53B4F0648 /* DGActivityIndicatorView.framework in Frameworks */, + 5FA1463A084ECF4696EF03DC51C2D77B /* Foundation.framework in Frameworks */, + D2B26FC8DCD57DA066183E49185483D5 /* Photos.framework in Frameworks */, + 7A4E4B351E5899D7CC3C25709D726429 /* PhotosUI.framework in Frameworks */, + FE43E73B9BA2688227C26E34FB6F9809 /* PureLayout.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -543,6 +717,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D4CDB4E6E374235339E25E73AA6E8A20 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C3E0496F36F73C1A7DAE140D58730580 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; E6B836B352B13C63D3C0FA0E500C98A4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -555,18 +737,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 01B7874DB1C39E2441E993D3FF792FA3 /* Pods */ = { - isa = PBXGroup; - children = ( - 9FA8BF66C6BE1C7120E1E47AD378C8C6 /* Expecta */, - 7D81D7EEC312BCAFD21F876E09579B84 /* Expecta+Snapshots */, - D6FBCAC8CB6DB5C7D390A634584D202A /* FBSnapshotTestCase */, - 235FB682F838C6842792EF01A4DB7606 /* PureLayout */, - E2A7D3FA8FED9DAF6BC709B458B46525 /* Specta */, - ); - name = Pods; - sourceTree = ""; - }; 0820FB7D050FF74CA4B083F2DD0331B2 /* Support Files */ = { isa = PBXGroup; children = ( @@ -600,21 +770,98 @@ path = "Target Support Files/Pods-PNImagePickerViewController_Tests"; sourceTree = ""; }; - 235FB682F838C6842792EF01A4DB7606 /* PureLayout */ = { + 12A809DA526B144FBB23BE27F57C4634 /* Pods */ = { isa = PBXGroup; children = ( - 54493E6647B30E3C5BEEFB40F581FF54 /* ALView+PureLayout.h */, - 8E64F0B58141D2A8C5B35D8B7E1D76E0 /* ALView+PureLayout.m */, - F42F0DA116857769307897100F7DA2CA /* NSArray+PureLayout.h */, - 3DDC2F0DB66FDE2D99014751F0C471C6 /* NSArray+PureLayout.m */, - 0B4D563AB4E127AF0A9FBC1E231C5D43 /* NSLayoutConstraint+PureLayout.h */, - 309AE29D56F62AA38812FCD588D97505 /* NSLayoutConstraint+PureLayout.m */, - 3FB4A919E61BF9E7388E2A08D5F6D7EA /* PureLayout.h */, - 90A24E859872FBF4996DB8FF2C72D641 /* PureLayout+Internal.h */, - 6BF30C23B3BDD819BCFB41457392E2D9 /* PureLayoutDefines.h */, - 3EB72DEC4DAC99AC8BD863243952158A /* Support Files */, + 7DCE108EBA4011459244E8C46A95AF31 /* DGActivityIndicatorView */, + 6CF7329D551AD07DFDD5D648D7BBF403 /* Expecta */, + 1C6B68466A4FD1986C0988F809DED2CF /* Expecta+Snapshots */, + FF6AD647D01470104CD51032BCDDFB23 /* FBSnapshotTestCase */, + 980F193A0D72A91596884889D7926571 /* PureLayout */, + A286454CC9FC576F0FB91DD75B28D188 /* Specta */, ); - path = PureLayout; + name = Pods; + sourceTree = ""; + }; + 1881BB5164FD31A261CCFB62B8894E75 /* SwiftSupport */ = { + isa = PBXGroup; + children = ( + EFBF8625F2ED19045943D71291B07685 /* SwiftSupport.swift */, + ); + name = SwiftSupport; + sourceTree = ""; + }; + 1C6B68466A4FD1986C0988F809DED2CF /* Expecta+Snapshots */ = { + isa = PBXGroup; + children = ( + 4131A52E9E99AE78388FCF1F4E6AB8DA /* ExpectaObject+FBSnapshotTest.h */, + 6FD85F8EB5968E2DAB76715F87DC13B1 /* ExpectaObject+FBSnapshotTest.m */, + 98514AA1F7289BA23089765DE7CF1D6C /* EXPMatchers+FBSnapshotTest.h */, + 32308394C5A3AC5262CBBEAB931C6968 /* EXPMatchers+FBSnapshotTest.m */, + 7FDE8C51C0B65366A3EB1953980ECCA0 /* Support Files */, + ); + path = "Expecta+Snapshots"; + sourceTree = ""; + }; + 1E2E7C82D8C61A506092F62BE420C7D3 /* Products */ = { + isa = PBXGroup; + children = ( + D223EAA67BE5A2DD55396646D758BE37 /* DGActivityIndicatorView.framework */, + C73633D42F997BB2CC5F7CD317983428 /* Expecta.framework */, + 80CB643444B41D3FBF41836835733076 /* Expecta_Snapshots.framework */, + 82D4DFA38A6720F4452C89F137B0F627 /* FBSnapshotTestCase.framework */, + 095FFF7AB937FBD50319F3D81957EA97 /* PNImagePickerViewController.bundle */, + 7A1252F4328A210FDB908CC835FD7C61 /* PNImagePickerViewController.framework */, + 675F976C5776FA3F706E7AC145321969 /* Pods_PNImagePickerViewController_Example.framework */, + 147B084627125D8A29B3F2BAC904DC2E /* Pods_PNImagePickerViewController_Tests.framework */, + F918A586B727C1A846EE70BA920641D6 /* PureLayout.framework */, + 58E0B8BB45BBC17AC81BD13BF13E3E42 /* Specta.framework */, + ); + name = Products; + sourceTree = ""; + }; + 2578537E9F3973D8FE0E7560E68AE304 /* iOS */ = { + isa = PBXGroup; + children = ( + 63E0C09EC5A60754FA9903F9BED795E2 /* Foundation.framework */, + A4177993DB3B97042D48FC5AF4848F87 /* Photos.framework */, + 2777B90BD2747660C2F54A18905CF67E /* PhotosUI.framework */, + 1FA4768257762FFDB3218C4A49990E8A /* QuartzCore.framework */, + 12B4AE8ABAA1002CDF4BDD74B2BA0CAD /* UIKit.framework */, + 1639AAA623ED22706A63D17EC17F2CE9 /* XCTest.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 27D467D20BD8E2FFCD0ED25864543161 /* Core */ = { + isa = PBXGroup; + children = ( + 2DABBC4A31C8FE006D3B7C2E469D03AC /* FBSnapshotTestCase.h */, + 87F25E0962F435F50F7CAEEB293016B1 /* FBSnapshotTestCase.m */, + F1D7E4093E6B50AFFDDC307917C04C4D /* FBSnapshotTestCasePlatform.h */, + 43FD649ECB9DB789BDB324501DC0976F /* FBSnapshotTestCasePlatform.m */, + 60E38EC1C8BF31EF6BE5AF0D57A9D473 /* FBSnapshotTestController.h */, + D57C30E845781EF631DAF7DE8BA6859E /* FBSnapshotTestController.m */, + 3EAD47761E6771712945E3578AEB063D /* UIImage+Compare.h */, + C4FB6B0CDBAB4083C9950033DDC89E7B /* UIImage+Compare.m */, + 9EA5EE4F2D75BEE67F35007E14EBA343 /* UIImage+Diff.h */, + 461921FADCD06E927E2CF06D54FD6D7C /* UIImage+Diff.m */, + 753992C3B40788957CA7E10CC978F9DA /* UIImage+Snapshot.h */, + 13A476C5F48F6D12A2DEB20753C6A1FE /* UIImage+Snapshot.m */, + ); + name = Core; + sourceTree = ""; + }; + 2C0E6AC3AD2596829865370059C4FBF3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + F9F30D12FC93A9FE85BA9E280CA47F0C /* DGActivityIndicatorView.framework */, + 8C28643FBB85D0B0E3DB9EB77F8ECF6B /* Expecta.framework */, + 7136FE62CB53268676DCD2D374D43CE5 /* FBSnapshotTestCase.framework */, + 0A16CA89E1D449A840965F3474760FCA /* PureLayout.framework */, + 2578537E9F3973D8FE0E7560E68AE304 /* iOS */, + ); + name = Frameworks; sourceTree = ""; }; 31B1351B9842557D1F7BCA12FA7686F2 /* Targets Support Files */ = { @@ -643,33 +890,6 @@ path = Colors; sourceTree = ""; }; - 3EB72DEC4DAC99AC8BD863243952158A /* Support Files */ = { - isa = PBXGroup; - children = ( - F890E1326443FD6C451595F103347DE3 /* Info.plist */, - E3CB665E7978D3A27C3461E4A59F8AA2 /* PureLayout.modulemap */, - 0CD0F5EFF1B3472519F5B4EE821A38E4 /* PureLayout.xcconfig */, - 32ECF317E9844862171B030F13E92DD9 /* PureLayout-dummy.m */, - 129E1C0CEC059CE5EFEA8DDBDC6BA783 /* PureLayout-prefix.pch */, - BC4E6D745DD948298DA344813F4F67D4 /* PureLayout-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/PureLayout"; - sourceTree = ""; - }; - 4621F714C66A3C941F99C7EFD8ED3D70 /* iOS */ = { - isa = PBXGroup; - children = ( - 8F82F3F7B94F183AEC45FD4AD8E6187C /* Foundation.framework */, - 3858144F30FB57931C02F64C362E3B5C /* Photos.framework */, - FB6EF84A0C4781A668F2F6F76CE56AC4 /* PhotosUI.framework */, - 0BB31E11DDAAA96925A1236365EEB21F /* QuartzCore.framework */, - 80D1D2F56444ACE235744A744B9C8D67 /* UIKit.framework */, - C71086A693BC5E296E2F30B405EEC247 /* XCTest.framework */, - ); - name = iOS; - sourceTree = ""; - }; 6394BC67FAEF06AFF50E9B62D71269AC /* Classes */ = { isa = PBXGroup; children = ( @@ -682,6 +902,87 @@ path = Classes; sourceTree = ""; }; + 6CF7329D551AD07DFDD5D648D7BBF403 /* Expecta */ = { + isa = PBXGroup; + children = ( + 885E0076902084EA9C5460FDC6349ADE /* EXPBlockDefinedMatcher.h */, + 61BE8EEF2C215C3E4C328250508B5B93 /* EXPBlockDefinedMatcher.m */, + F45F565AABE7E9D19116A5DE203B8C68 /* EXPDefines.h */, + A0C161BBA8F108FF47EF6C02DC5CB263 /* EXPDoubleTuple.h */, + 6A4FDF3878CE27CE988C38AEA6654C5F /* EXPDoubleTuple.m */, + A54A9028274D06409CC2977B0E10BFBC /* Expecta.h */, + 92007BBA6C6286B9D00F2CBDA8804B19 /* ExpectaObject.h */, + 395534BA328352619356CDAAF57C0D9D /* ExpectaObject.m */, + 61F9F01E426729B0B74AE78CB70A1420 /* ExpectaSupport.h */, + 575D2BEE9142717067E546136790A0F8 /* ExpectaSupport.m */, + 9288E8E5355BD1DF560F5E2FA67CBD27 /* EXPExpect.h */, + 121C30A30B8108CAE2294241F9E20A5B /* EXPExpect.m */, + 6925CA8B4B659ACD8F9034615203F945 /* EXPFloatTuple.h */, + E1F1BBA6B7B557D5FF0A3171482F0D67 /* EXPFloatTuple.m */, + 9D5DFE769CE7D7DF02A2EDF9A8B73562 /* EXPMatcher.h */, + 338EE00E917E8DDCC405B3D08CAF995B /* EXPMatcherHelpers.h */, + 89EBAB4863EEC88B938996CB37083008 /* EXPMatcherHelpers.m */, + F24F9340428DE453F3C634E811179751 /* EXPMatchers.h */, + 1FF332187656D70D080A1DE4BEB4D4BD /* EXPMatchers+beCloseTo.h */, + C4B622E36D00B0EC421438CD40968EE0 /* EXPMatchers+beCloseTo.m */, + 7B6B8EA0D93F6E424061F592524B5E23 /* EXPMatchers+beFalsy.h */, + 7B459F17FC9666AABCB0A418168C4AEF /* EXPMatchers+beFalsy.m */, + B0D8176E92EDD13A72FC541922FADBC6 /* EXPMatchers+beginWith.h */, + E62ACE7ECFAD595BCFDB74843AD1A4D2 /* EXPMatchers+beginWith.m */, + 2C50F374315648DA74A678FDBCFC4102 /* EXPMatchers+beGreaterThan.h */, + FBC0ACFB085C4A58604D3E412ED62FBA /* EXPMatchers+beGreaterThan.m */, + 3160720CF30921889C17A2A8B843DEDC /* EXPMatchers+beGreaterThanOrEqualTo.h */, + 610572C5FF48FAE8A4EC2E3145774D28 /* EXPMatchers+beGreaterThanOrEqualTo.m */, + 107A3DE05C14D3CE5E29B661678AB4B8 /* EXPMatchers+beIdenticalTo.h */, + DCD2DE470DD0C352D53BB989F844C45B /* EXPMatchers+beIdenticalTo.m */, + 9EE10AFD4359597AA6CBCC8336E29234 /* EXPMatchers+beInstanceOf.h */, + 270D17BEA67B480CC451F01C825D4693 /* EXPMatchers+beInstanceOf.m */, + 05D47C2C08E41238C223B56C2137D58A /* EXPMatchers+beInTheRangeOf.h */, + 94E4469B3C95C5216684C7829AAB232C /* EXPMatchers+beInTheRangeOf.m */, + AABFF02278A23BB1221E222182084C49 /* EXPMatchers+beKindOf.h */, + EE008D26EADDB7377223D1A256D4A042 /* EXPMatchers+beKindOf.m */, + DF86B44B7E35819FC61B294B343E31FB /* EXPMatchers+beLessThan.h */, + 488E6E1D0416267DB24E68C51622EB47 /* EXPMatchers+beLessThan.m */, + D1C1EE0EB550603FC231CDB277A7CF74 /* EXPMatchers+beLessThanOrEqualTo.h */, + 764E05BA4B42E70C21008CE02BECEE4C /* EXPMatchers+beLessThanOrEqualTo.m */, + BD26CEA7F827DE4BBA98A4BDD93A9D93 /* EXPMatchers+beNil.h */, + D352AED853C0AAE46F02D684528ED717 /* EXPMatchers+beNil.m */, + 4E7089CED04847445415B38B32B4446C /* EXPMatchers+beSubclassOf.h */, + DDBEB2F265DE738C0F7887C020B1F28D /* EXPMatchers+beSubclassOf.m */, + B52800E45378B2979869F16338D3491A /* EXPMatchers+beSupersetOf.h */, + 78F835552B0C0149CC969BF4A9C0FD39 /* EXPMatchers+beSupersetOf.m */, + 6BA1D311BEC86CB50A8E8842C358FD66 /* EXPMatchers+beTruthy.h */, + 457905C28F99F2C5AF8AC310E1F9CECA /* EXPMatchers+beTruthy.m */, + 9D827829DB6BCFF0311053AA2EE01B35 /* EXPMatchers+conformTo.h */, + 51A5CE482409925E53203B255D2626FA /* EXPMatchers+conformTo.m */, + 714D907B92028E0BD968F8D41D05C0B6 /* EXPMatchers+contain.h */, + 369E77F7391B9334464AD8933DEA558F /* EXPMatchers+contain.m */, + 1903396031A91F59EC18BFD3EC16F7A2 /* EXPMatchers+endWith.h */, + F69A3ACAB5FFEC146FBA6197D8D480F9 /* EXPMatchers+endWith.m */, + 79C8373476354107A7B6604FF88E8598 /* EXPMatchers+equal.h */, + C0373372700C722F5A96C4CFC6C54199 /* EXPMatchers+equal.m */, + 648EEE319F62D61A69EB22EA22C20EE9 /* EXPMatchers+haveCountOf.h */, + 83762AE8688F62BAFCA4942A7D46C455 /* EXPMatchers+haveCountOf.m */, + 0332972D104A3D1BB9EB331D183AD48B /* EXPMatchers+match.h */, + EC588B9EAC9440EF09B75FB3972C07FE /* EXPMatchers+match.m */, + E54DECB7356E53FC52ED067B347499E3 /* EXPMatchers+postNotification.h */, + E9B66B9D8E9FC2BFAE108DE3D5AA312A /* EXPMatchers+postNotification.m */, + 004F2BE504B652BDCD10B11C63E511D7 /* EXPMatchers+raise.h */, + 771C132970255F43C156A67EB86CA041 /* EXPMatchers+raise.m */, + 1E468E012D2F747DEDDF8983E7250A06 /* EXPMatchers+raiseWithReason.h */, + 12476CF16B5F9A89588B9A8812342554 /* EXPMatchers+raiseWithReason.m */, + E2B98CB95EBDDC9E87241B77A46E1266 /* EXPMatchers+respondTo.h */, + 2B673AC718C2596C1A1FBFB27FE75E08 /* EXPMatchers+respondTo.m */, + DB70E3EFF32FDB6FFA85E1F22E6A61AB /* EXPUnsupportedObject.h */, + E2FEA90ADE9DB7B03273630AB276F8DD /* EXPUnsupportedObject.m */, + BA5A98474C98EBC8C205B1A4E3EE6C27 /* NSObject+Expecta.h */, + 43B9B2D4764EC02C8CE015115DCEF444 /* NSValue+Expecta.h */, + 8A6225907238E19AEB89FC94B661C1BB /* NSValue+Expecta.m */, + CEB4E9FAF82318A3161F45F0F0067D1B /* Support Files */, + ); + path = Expecta; + sourceTree = ""; + }; 7310AB29AEC4B95181B6E62AA0D4BB60 /* PNImagePickerViewController */ = { isa = PBXGroup; children = ( @@ -710,161 +1011,198 @@ path = "Target Support Files/Pods-PNImagePickerViewController_Example"; sourceTree = ""; }; - 7D81D7EEC312BCAFD21F876E09579B84 /* Expecta+Snapshots */ = { - isa = PBXGroup; - children = ( - DDE582482FAF1CEB39F0B9126CC59D6D /* ExpectaObject+FBSnapshotTest.h */, - 89B4983E65DB1A8DD67F7A9D82A5CBBE /* ExpectaObject+FBSnapshotTest.m */, - 6D0C6649E2D25AE53519CD3D4CD09ADC /* EXPMatchers+FBSnapshotTest.h */, - AC25E36ECB984C6D46E07D449F8E6AD3 /* EXPMatchers+FBSnapshotTest.m */, - 89798485B53447DE77BDD20C695E90B5 /* Support Files */, - ); - path = "Expecta+Snapshots"; - sourceTree = ""; - }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, CB2BEA235224960B8B8E37CF10D3BF61 /* Development Pods */, - D8D11877A57F64660DAA2F4F2A976132 /* Frameworks */, - 01B7874DB1C39E2441E993D3FF792FA3 /* Pods */, - 97B9907A03FDAC9EF3A5FDB0B78A27E5 /* Products */, + 2C0E6AC3AD2596829865370059C4FBF3 /* Frameworks */, + 12A809DA526B144FBB23BE27F57C4634 /* Pods */, + 1E2E7C82D8C61A506092F62BE420C7D3 /* Products */, 31B1351B9842557D1F7BCA12FA7686F2 /* Targets Support Files */, ); sourceTree = ""; }; - 83740C9D7B90CA3BE24F881C3D85F5FE /* Support Files */ = { + 7DCE108EBA4011459244E8C46A95AF31 /* DGActivityIndicatorView */ = { isa = PBXGroup; children = ( - FEB36DA91AA655F244A3A65C2737019B /* Expecta.modulemap */, - 214647B96EB8D7B1FA18DD92A6EA3917 /* Expecta.xcconfig */, - 5F9093C7E794724D47C617BE24557A5D /* Expecta-dummy.m */, - 5892291CEFA7A94FA402E6AA6A47B34D /* Expecta-prefix.pch */, - 5C0D2BAE8C19CA6614F3CA94783F095D /* Expecta-umbrella.h */, - 305597218253482DD97EA53544065F82 /* Info.plist */, + F8E15F4958152B93F7A51B41A49F06B7 /* DGActivityIndicatorAnimationProtocol.h */, + 34B3DC24D7A2619FFF8563970826ACCF /* DGActivityIndicatorBallBeatAnimation.h */, + F300B40AFA24F8C5A0751AA0E0AE0E17 /* DGActivityIndicatorBallBeatAnimation.m */, + AD46F573951121EAE28BB449BDAEABA0 /* DGActivityIndicatorBallClipRotateAnimation.h */, + A673437D364C508C96D2396BF29B248C /* DGActivityIndicatorBallClipRotateAnimation.m */, + 5F3C10A6D080F1EC376E57967C33147C /* DGActivityIndicatorBallClipRotateMultipleAnimation.h */, + 8E46BD9C49F3823060B10F976D221685 /* DGActivityIndicatorBallClipRotateMultipleAnimation.m */, + BD77462827262F193DA14BEBD1C3E231 /* DGActivityIndicatorBallClipRotatePulseAnimation.h */, + CE86A4579EC09DC343B5C10D9079AB56 /* DGActivityIndicatorBallClipRotatePulseAnimation.m */, + E1C6AA1B6F3BCCCDE553A56C33EB4649 /* DGActivityIndicatorBallGridBeatAnimation.h */, + 219E3CFCBF18A99FCF13094E5830A000 /* DGActivityIndicatorBallGridBeatAnimation.m */, + E6E4BAE650A258C80DA6C0499041E875 /* DGActivityIndicatorBallGridPulseAnimation.h */, + B59163A00563EBC5A37B41B9BA8B1C18 /* DGActivityIndicatorBallGridPulseAnimation.m */, + DA2A625BE88D329B2DAB468A14D454E5 /* DGActivityIndicatorBallPulseAnimation.h */, + 9B06A2507AD127178779415EC9208241 /* DGActivityIndicatorBallPulseAnimation.m */, + 8599925B3BA781F682EE8EC7602BB199 /* DGActivityIndicatorBallPulseSyncAnimation.h */, + FC0E127EF1B41A9DCD8E34A51AA4A385 /* DGActivityIndicatorBallPulseSyncAnimation.m */, + 2039B543F2617C1960BEFBAD77960521 /* DGActivityIndicatorBallRotateAnimation.h */, + CE45EB99FCDFDCD71A41117E18C36C41 /* DGActivityIndicatorBallRotateAnimation.m */, + 170EBF77F1E14D3F0F06E1ABA52F046B /* DGActivityIndicatorBallScaleAnimation.h */, + E414D62B6F3A82E4E06FB2313C8FD3D9 /* DGActivityIndicatorBallScaleAnimation.m */, + C2349F032C22C7888A00A0C1F10CAB77 /* DGActivityIndicatorBallScaleMultipleAnimation.h */, + EB0A71B16F5C2D5C9C819687D0C69620 /* DGActivityIndicatorBallScaleMultipleAnimation.m */, + 772058E89925821FF10E46546AF9B4B4 /* DGActivityIndicatorBallScaleRippleAnimation.h */, + 29BE5D286465E639EE8D48EE893E378D /* DGActivityIndicatorBallScaleRippleAnimation.m */, + 1C9684CC7112205A4C65C9EF467C146A /* DGActivityIndicatorBallScaleRippleMultipleAnimation.h */, + 9A068609FD5C803077DC8C2042170535 /* DGActivityIndicatorBallScaleRippleMultipleAnimation.m */, + 67BEB743EB822DB344D1FDB79EEB19B9 /* DGActivityIndicatorBallSpinFadeLoader.h */, + C6BCE9F9EA5BD670ED777D7EA338E063 /* DGActivityIndicatorBallSpinFadeLoader.m */, + 069E06AFFEE19C5A2DEB24347C819167 /* DGActivityIndicatorBallTrianglePathAnimation.h */, + 1F02CAD4927D227E9B8F64E76C6D79B8 /* DGActivityIndicatorBallTrianglePathAnimation.m */, + 89880E23D0FA533965CB9034C799F6CC /* DGActivityIndicatorBallZigZagAnimation.h */, + 77464E2D7487045EDA840C92E186223F /* DGActivityIndicatorBallZigZagAnimation.m */, + 20313E59970B07CA74A0D20613315FBA /* DGActivityIndicatorBallZigZagDeflectAnimation.h */, + A321EAD55888DD6044ADE41E2DA2D1F0 /* DGActivityIndicatorBallZigZagDeflectAnimation.m */, + E5C01C3973EEA5683DAF2A21243EE5D0 /* DGActivityIndicatorCookieTerminatorAnimation.h */, + 2DF91EF184B25A34AF05D45ECB8B38BA /* DGActivityIndicatorCookieTerminatorAnimation.m */, + 8C0D7CB5FC931065DA98924EF0C18C9A /* DGActivityIndicatorDoubleBounceAnimation.h */, + 57FF04135B01341C5846A35E2C100412 /* DGActivityIndicatorDoubleBounceAnimation.m */, + F165E22E40244ACAC4A5654CBA5E24E3 /* DGActivityIndicatorFiveDotsAnimation.h */, + F043D41411071EB7695F7E6EB5053E80 /* DGActivityIndicatorFiveDotsAnimation.m */, + C05B54046664B54E8EE624F979B2014C /* DGActivityIndicatorLineScaleAnimation.h */, + 4FA716B4B3B5EE24519F302F20AE6863 /* DGActivityIndicatorLineScaleAnimation.m */, + 2BC7C887BFC34CE4D58F33C2A17964E6 /* DGActivityIndicatorLineScalePartyAnimation.h */, + CE4B6F2352BB68D81B8E851154276590 /* DGActivityIndicatorLineScalePartyAnimation.m */, + 0CB6778380B76952396D9D8FADFA63B4 /* DGActivityIndicatorLineScalePulseOutAnimation.h */, + AAD647C23E9EA90B3425D677A9CA612B /* DGActivityIndicatorLineScalePulseOutAnimation.m */, + EABC475F73AEA8FA59A4B0801F74AA37 /* DGActivityIndicatorLineScalePulseOutRapidAnimation.h */, + 8979CFB2689073F8D1DF5E94BA8CD0D4 /* DGActivityIndicatorLineScalePulseOutRapidAnimation.m */, + 346B90014829A7B864C213F84294BE2C /* DGActivityIndicatorNineDotsAnimation.h */, + 363B6829723BF6FB10A3B3A94B75E36E /* DGActivityIndicatorNineDotsAnimation.m */, + 04C146F68F9866EDFA9CD60B858431E7 /* DGActivityIndicatorRotatingSandglassAnimation.h */, + 3DAF9322518464921E04B73ED3A9D138 /* DGActivityIndicatorRotatingSandglassAnimation.m */, + 6F7AFA9E0DB6AED75E6E050A50321F0C /* DGActivityIndicatorRotatingSquaresAnimation.h */, + B2D07280905270153CB51BE84E603490 /* DGActivityIndicatorRotatingSquaresAnimation.m */, + 5DBA37DDE7ABCA9E39467357B4CA0064 /* DGActivityIndicatorRotatingTrigonAnimation.h */, + 6B82DA15E8DCF7611B8AA156171B0145 /* DGActivityIndicatorRotatingTrigonAnimation.m */, + 5A67131DD3E8A77797409C31AD32ECF1 /* DGActivityIndicatorThreeDotsAnimation.h */, + CA568B6F1164CDE3763C92982FDF0B80 /* DGActivityIndicatorThreeDotsAnimation.m */, + 0AD82807D6953CB1A5B60F94FD4671D4 /* DGActivityIndicatorTriangleSkewSpinAnimation.h */, + D9FF93A6D3CD60EFD7678282FCA20D3D /* DGActivityIndicatorTriangleSkewSpinAnimation.m */, + A1C2992E3B24E991EF0EE4F073D749B2 /* DGActivityIndicatorTriplePulseAnimation.h */, + 4993B4BADF6EE32D351D7CC1632212EF /* DGActivityIndicatorTriplePulseAnimation.m */, + 1A1081C6662F0D578C1C24057E9FFA25 /* DGActivityIndicatorTripleRingsAnimation.h */, + BB13355693092488ACB838CACE12EB64 /* DGActivityIndicatorTripleRingsAnimation.m */, + 77BD465B0699C84B403C14801297E94E /* DGActivityIndicatorTwoDotsAnimation.h */, + 46CE3B42FE5B19F23CD24060BE0920CA /* DGActivityIndicatorTwoDotsAnimation.m */, + B64EB1329E44F12CA40EB9CD47E3D2E3 /* DGActivityIndicatorView.h */, + 10CA2329E94AAA9E76F025B2C1E0FD96 /* DGActivityIndicatorView.m */, + 831DD089A455CA3C834A043717EF563F /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/Expecta"; + path = DGActivityIndicatorView; sourceTree = ""; }; - 89798485B53447DE77BDD20C695E90B5 /* Support Files */ = { + 7FDE8C51C0B65366A3EB1953980ECCA0 /* Support Files */ = { isa = PBXGroup; children = ( - AA07840C0EE1A07210D7D9A95B28E2D6 /* Expecta+Snapshots.modulemap */, - 561534F9468BFFFCD27420D9028EAF1D /* Expecta+Snapshots.xcconfig */, - 35F1FA87897C7070C74ECF8D2CE8DAF9 /* Expecta+Snapshots-dummy.m */, - 099A52678B3E80735A017D133E675C0B /* Expecta+Snapshots-prefix.pch */, - B3E4CD3EBCF888648A5FDAC1B196AF58 /* Expecta+Snapshots-umbrella.h */, - A2B5894FEB35480FC1B773A4D38D14DF /* Info.plist */, + C387054DBA65DDD2001A2B4720437721 /* Expecta+Snapshots.modulemap */, + BD09CC45A3B67ED88F774603432C5C9B /* Expecta+Snapshots.xcconfig */, + FD36B3A8AA77E453552AF13CEF72A54C /* Expecta+Snapshots-dummy.m */, + 0E405D25EF786DE5F57FB893E6EAA756 /* Expecta+Snapshots-prefix.pch */, + F449D81313C96AAC3E90BF988280AD6E /* Expecta+Snapshots-umbrella.h */, + 2D5C17BA316D6BF546147CB40542FCC2 /* Info.plist */, ); name = "Support Files"; path = "../Target Support Files/Expecta+Snapshots"; sourceTree = ""; }; - 97B9907A03FDAC9EF3A5FDB0B78A27E5 /* Products */ = { + 831DD089A455CA3C834A043717EF563F /* Support Files */ = { isa = PBXGroup; children = ( - 5D2E7B136F89A8D5E8D9B527B8F5A555 /* Expecta.framework */, - A823928D76472F638E2F3C697450BDB5 /* Expecta_Snapshots.framework */, - 3B5DC91278AF0B7B1C84CA0D25C7FC08 /* FBSnapshotTestCase.framework */, - 9BE9B9F15F1FC0C7BDDA5C9ED0AF220F /* PNImagePickerViewController.bundle */, - C12D30394F19452C8D319BD3A8525FBE /* PNImagePickerViewController.framework */, - F3844FAB6104C0385AC09C2DC5801A0C /* Pods_PNImagePickerViewController_Example.framework */, - D26170D9FFE0101C1DC15C07C5AC2494 /* Pods_PNImagePickerViewController_Tests.framework */, - 9EDA6325E8E3E42FBA74C8D748457683 /* PureLayout.framework */, - AF5617EDFECDB96475E8797AE4B46329 /* Specta.framework */, + D06F3815D256490933E1D4389056447C /* DGActivityIndicatorView.modulemap */, + BDD6AEA3AAE1E01362FA42A2A36ECEFC /* DGActivityIndicatorView.xcconfig */, + 14681335FE6A5264FD8EC1C061E7CDD1 /* DGActivityIndicatorView-dummy.m */, + 2773DE368858A54FF18FA4BC9A2CD92A /* DGActivityIndicatorView-prefix.pch */, + DB70BDEEF19D8835410FFAA325A803E6 /* DGActivityIndicatorView-umbrella.h */, + 6704F890B5B53FCFB9BFAAA60C7C716B /* Info.plist */, ); - name = Products; + name = "Support Files"; + path = "../Target Support Files/DGActivityIndicatorView"; sourceTree = ""; }; - 9FA8BF66C6BE1C7120E1E47AD378C8C6 /* Expecta */ = { + 980F193A0D72A91596884889D7926571 /* PureLayout */ = { isa = PBXGroup; children = ( - AA101E016C76302C06F4575172FDC9DE /* EXPBlockDefinedMatcher.h */, - F6EB583A0E0B95BC98422547435C1DB8 /* EXPBlockDefinedMatcher.m */, - B73FA83187F6E3585C08B5C189A6F033 /* EXPDefines.h */, - FB37123DB4D2486C30EA392F17BF7505 /* EXPDoubleTuple.h */, - 815FCECEE4FF630729054295EC5482B3 /* EXPDoubleTuple.m */, - 5AE13025CC5C6B218AAF479784CD9ED2 /* Expecta.h */, - AF51448F8D892B8D7E10576612FBA77A /* ExpectaObject.h */, - C42C93ADD945A4372635BD32CAD3C814 /* ExpectaObject.m */, - 63531BD7407ED90996601DCE8FCEFD55 /* ExpectaSupport.h */, - D7B03B244D464496A92ACED43DA0DE3D /* ExpectaSupport.m */, - FF49B4C3C61836DE302F437C919A7A05 /* EXPExpect.h */, - 430444E6E86490E2572119A37E68341B /* EXPExpect.m */, - 593892C8C11EDE0285489E134696F878 /* EXPFloatTuple.h */, - DEEE8F25AEEDB29355650590026262C0 /* EXPFloatTuple.m */, - 44C2BCB8ADDB4424AC3426DA52A88FD0 /* EXPMatcher.h */, - AA729BBF9CB238789CCA63E476AEA5CE /* EXPMatcherHelpers.h */, - 52B96B599CCF1E2C6EE96048EA5880E3 /* EXPMatcherHelpers.m */, - 4DFBE5937DE9B4E2ADFCD9B2EBF09325 /* EXPMatchers.h */, - 19C53BEC21D8B0E161B0702E54CF7D9D /* EXPMatchers+beCloseTo.h */, - 10782AE189DA5C3D8516751CF9C19A5E /* EXPMatchers+beCloseTo.m */, - 1AA72D353A2583EA748D45A0652D40A4 /* EXPMatchers+beFalsy.h */, - 31480E56FB4A5AF08ADA95062BFEFC89 /* EXPMatchers+beFalsy.m */, - 8306A05F3FC954D6F3B4E35C4F6B2E24 /* EXPMatchers+beginWith.h */, - FA9AA960F05653C47EB2662A7E0E3796 /* EXPMatchers+beginWith.m */, - DC7DF335401532E474FB05944C1ED485 /* EXPMatchers+beGreaterThan.h */, - 80156AEEDC4D129C5C54BFFED8633BF6 /* EXPMatchers+beGreaterThan.m */, - 7BD87D11D30651D5EB6E5F42D4FCDFFE /* EXPMatchers+beGreaterThanOrEqualTo.h */, - F65C9454F6F8DB1D7E3FFDE17F54D58C /* EXPMatchers+beGreaterThanOrEqualTo.m */, - 3649CB424097BF48E430598CDE474EEC /* EXPMatchers+beIdenticalTo.h */, - 4A483661BF65897902AB0A0CFCD975AE /* EXPMatchers+beIdenticalTo.m */, - 4BB793EEEA2972B9A2DB5CC84E5C7FC8 /* EXPMatchers+beInstanceOf.h */, - 1509EB0EDB59BB6A235C075BDF27ACA5 /* EXPMatchers+beInstanceOf.m */, - 70688D0A2ACC0A7F02D0F1235F0E8BF4 /* EXPMatchers+beInTheRangeOf.h */, - 9106954FD71A00CE85BF2799C2328977 /* EXPMatchers+beInTheRangeOf.m */, - BB4F841C6A0CF76946BB788A161240EA /* EXPMatchers+beKindOf.h */, - C1EF7A5D7462BAA91E23F816C1B96180 /* EXPMatchers+beKindOf.m */, - 2CD52C0184F0903B7EA8B033B01717A9 /* EXPMatchers+beLessThan.h */, - 390F5EAD0FA0ACB91D06A90A974E0A45 /* EXPMatchers+beLessThan.m */, - F0BE4B0FD430ED5364A83BE6EFAB44E3 /* EXPMatchers+beLessThanOrEqualTo.h */, - 3F639A935CAD81D124435F643E505794 /* EXPMatchers+beLessThanOrEqualTo.m */, - AF42AAF54B5A41D37200E11671FFA6E8 /* EXPMatchers+beNil.h */, - D32A0E3BF4F5096301528945D03203B2 /* EXPMatchers+beNil.m */, - 25BC55E750A529F4D0F46F5119E3EFB0 /* EXPMatchers+beSubclassOf.h */, - ECF097833A853FF056370CCA06DA4831 /* EXPMatchers+beSubclassOf.m */, - C3F844297B8662ADF09537912FAC73ED /* EXPMatchers+beSupersetOf.h */, - 88B5C933CDFBD78AAD0546A4AF52B9D5 /* EXPMatchers+beSupersetOf.m */, - 579F45E6A47205E79C183A91C534F864 /* EXPMatchers+beTruthy.h */, - 6F7482216BDAA86DA901E47954D81943 /* EXPMatchers+beTruthy.m */, - CE7DBAFD56D35A84CC36342276EA5A27 /* EXPMatchers+conformTo.h */, - 5723825DA3450735996AC90B937A4AEF /* EXPMatchers+conformTo.m */, - EF3299BF94C0392FCBAA98D2E58CB10E /* EXPMatchers+contain.h */, - 1A2536CA1A4C375065588D7CA7FFFD04 /* EXPMatchers+contain.m */, - 313C5B73A027A335880529469217DAC0 /* EXPMatchers+endWith.h */, - CB278C4D8E22AB0B2386C27A5DC84F44 /* EXPMatchers+endWith.m */, - 238F2FBD86752F42D840CC54A3F5A407 /* EXPMatchers+equal.h */, - 4016B648F56236C2BA14F6C65E94AFC0 /* EXPMatchers+equal.m */, - 65B4136A49BEA00E3874E067A148CFE2 /* EXPMatchers+haveCountOf.h */, - 289E592F6B702F82121F6BAC6F5CA8AA /* EXPMatchers+haveCountOf.m */, - AA7B81ED73344E500125187115387A8F /* EXPMatchers+match.h */, - 5A5036265EC2BF776D08D8ED807B8000 /* EXPMatchers+match.m */, - DD8F605551C2300C9C46FB3364564F6D /* EXPMatchers+postNotification.h */, - FAD450F231B69F75615E743CE1ED2B4C /* EXPMatchers+postNotification.m */, - AD498EF1F11DF000A23462687DB4F486 /* EXPMatchers+raise.h */, - 96722169F2EE7FD1D3A8A151F68B4997 /* EXPMatchers+raise.m */, - 510D07686732BBA3C4B870F02EAC7A30 /* EXPMatchers+raiseWithReason.h */, - FB445B211C424686C720B085874E2EF7 /* EXPMatchers+raiseWithReason.m */, - 17A1FCF90A9C0E52BA56CCF8B9DCF00C /* EXPMatchers+respondTo.h */, - C764B935846E8C662CCF7906D8A555DA /* EXPMatchers+respondTo.m */, - 10E1AB2290A940590A50E8D54F54A2F6 /* EXPUnsupportedObject.h */, - 47C3908A5AAE0260FB6D95C74D65652D /* EXPUnsupportedObject.m */, - 87DC71BCE9F88907D4CA9EA6C6D4CD3A /* NSObject+Expecta.h */, - 4A4547E4EE9A69F8554ABE6EB6C8F6FA /* NSValue+Expecta.h */, - DD4E5110B5ED80C99A3F9576C46C4672 /* NSValue+Expecta.m */, - 83740C9D7B90CA3BE24F881C3D85F5FE /* Support Files */, + 47EAA30B5D2029E9129DB846C9BB4013 /* ALView+PureLayout.h */, + 5C73FB93AF85307B0D5ABF9CD8C30EED /* ALView+PureLayout.m */, + F3AA3C32FD65264ED12C1A3F34412C16 /* NSArray+PureLayout.h */, + C96C01D1E4D2E00FED4476FA06FA5287 /* NSArray+PureLayout.m */, + E1D4DDB7EEFD7F398CD60BFB0FEE4F7E /* NSLayoutConstraint+PureLayout.h */, + 80838666592F62DAE85097BA42B18413 /* NSLayoutConstraint+PureLayout.m */, + C2CDEC51745442357360815D430E5D9B /* PureLayout.h */, + F6582E177A6873639EB320360C612D23 /* PureLayout+Internal.h */, + 4F987236F53B46A77FFCDCC613FC9C05 /* PureLayoutDefines.h */, + B07DAD1789C34FA57A9C791A64DAAD69 /* Support Files */, ); - path = Expecta; + path = PureLayout; sourceTree = ""; }; - B2B52F67A43F3D9C4612A0F17F4F2B8D /* SwiftSupport */ = { + A286454CC9FC576F0FB91DD75B28D188 /* Specta */ = { isa = PBXGroup; children = ( - 03125582C7BE5CEF86A73FA369065311 /* SwiftSupport.swift */, + 679988580E3F54F978A9B8C200E86899 /* Specta.h */, + FEBD832ABC4328AADF090068DCE1D5C0 /* SpectaDSL.h */, + 30019DB7CD70B1AE959168A71100DD0F /* SpectaDSL.m */, + 8FF45B8EC7AC741DAE4A3906D41CE9A6 /* SpectaTypes.h */, + 7F17C1DA9A37564AFCBA6087CEF966A7 /* SpectaUtility.h */, + 4F4D2976E70EE23A7446D20F520D5290 /* SpectaUtility.m */, + C1C2B7979A25FBEC9F71A189D1EE51AA /* SPTCallSite.h */, + 222376B437A71B76E4C29AB18AA9A18C /* SPTCallSite.m */, + 20A3C9C0308CA1587DB2CD90C9B53C50 /* SPTCompiledExample.h */, + 088B8ADFAF220F761093C33897F82D3E /* SPTCompiledExample.m */, + B8B275EDDCDCF2D38CAF49A40017D01D /* SPTExample.h */, + 5408BFB149F5180F76A3B47146C40266 /* SPTExample.m */, + EF5C76DECE92DA64A72713CE941E3C95 /* SPTExampleGroup.h */, + 0CC1D91E36474C2C82AE8A6CFEA39074 /* SPTExampleGroup.m */, + 252C82CD3B70832F764849FBFD70514F /* SPTExcludeGlobalBeforeAfterEach.h */, + 8840BCEBAAC747B222A9A3A4F0AC735C /* SPTGlobalBeforeAfterEach.h */, + 5B8B84A943FC3581A554618EFECDA70E /* SPTSharedExampleGroups.h */, + C863C942C44C853A7970FB91BB4D3843 /* SPTSharedExampleGroups.m */, + F53616AA4174D5EDA86EA86C95B64FAB /* SPTSpec.h */, + 62790145E76AE0216D0A5DA79171259E /* SPTSpec.m */, + B625AD940476D7EFD3A306E5DC19F876 /* SPTTestSuite.h */, + 554C886ED08D11E80C0A5BEE9762FDE8 /* SPTTestSuite.m */, + 5DF04190C52FF106F02A99E603753BFD /* XCTest+Private.h */, + 9A89178F3121D6F08D3FF64FF460D24F /* XCTestCase+Specta.h */, + 53C788F990B84D46CF72C2B17D2EB55E /* XCTestCase+Specta.m */, + CE21386803CDC8FF708068B565704814 /* Support Files */, ); - name = SwiftSupport; + path = Specta; + sourceTree = ""; + }; + B07DAD1789C34FA57A9C791A64DAAD69 /* Support Files */ = { + isa = PBXGroup; + children = ( + E66E28010AC741AB1BA3E3EF6F8784AB /* Info.plist */, + 38FB76AAB0240BF3D56AB98ACEE7EEA7 /* PureLayout.modulemap */, + E406AD314CFBBF655B9B07A0F8EE6325 /* PureLayout.xcconfig */, + 22C6E4E56188E0902E08983B04833523 /* PureLayout-dummy.m */, + 2DB1EC8D87E652DA8D04A02DFB6E3920 /* PureLayout-prefix.pch */, + D69CE0A8AA791901A9E680B47741DC73 /* PureLayout-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/PureLayout"; + sourceTree = ""; + }; + BB326F9E6D84D2EB1D7C956550DD8102 /* Support Files */ = { + isa = PBXGroup; + children = ( + F86EE1376A385A9872D6CF81FF978865 /* FBSnapshotTestCase.modulemap */, + E567BB4987D9A997C1EE3F4644EEF81A /* FBSnapshotTestCase.xcconfig */, + 6FAD67A3E9EF3B4766AC08DCC824CD0C /* FBSnapshotTestCase-dummy.m */, + B6FCE907E679A8E3E3FBF5283FF58457 /* FBSnapshotTestCase-prefix.pch */, + 846879E2D22F994BD70101FDF003244F /* Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/FBSnapshotTestCase"; sourceTree = ""; }; CB2BEA235224960B8B8E37CF10D3BF61 /* Development Pods */ = { @@ -875,133 +1213,114 @@ name = "Development Pods"; sourceTree = ""; }; - D0370DE86B87E489F9AF431610178DD3 /* Support Files */ = { + CE21386803CDC8FF708068B565704814 /* Support Files */ = { isa = PBXGroup; children = ( - 43E396376F0A58FC93901CB23B161BC3 /* Info.plist */, - 8CADF593C95BE01C0B91DBC2C8884939 /* Specta.modulemap */, - 2C6E94DA05F91DF35F74319DC6F0DF33 /* Specta.xcconfig */, - 703612D1CEA30E0B8C9E02D238F7196E /* Specta-dummy.m */, - C67A01B644DD8AC9FAB6D7E50DCB62FF /* Specta-prefix.pch */, - AA01D298630B12AA0970C55ADF492FE2 /* Specta-umbrella.h */, + 61B4466883A8E7B3BBFBD3CD14084150 /* Info.plist */, + B617A7263E6B83D90E05503FE0460B91 /* Specta.modulemap */, + 5B3492B4CB56B72013F1118941E24121 /* Specta.xcconfig */, + F10C730C1F2B28DC275C7E9224BAD0BB /* Specta-dummy.m */, + 6CEADD0E53710547430DAF55D9581DEA /* Specta-prefix.pch */, + 329C6E17EF66A77171669B112E1AF184 /* Specta-umbrella.h */, ); name = "Support Files"; path = "../Target Support Files/Specta"; sourceTree = ""; }; - D6FBCAC8CB6DB5C7D390A634584D202A /* FBSnapshotTestCase */ = { + CEB4E9FAF82318A3161F45F0F0067D1B /* Support Files */ = { isa = PBXGroup; children = ( - FD92B3AD787566F87818EB869C872F59 /* Core */, - FDA4458458FFF781EABF8F25A06B490E /* Support Files */, - B2B52F67A43F3D9C4612A0F17F4F2B8D /* SwiftSupport */, - ); - path = FBSnapshotTestCase; - sourceTree = ""; - }; - D8D11877A57F64660DAA2F4F2A976132 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D4DBA040A9E2814F4869DD7B7B7E4F98 /* Expecta.framework */, - 901657B874B99B4D8BAC6029F1239819 /* FBSnapshotTestCase.framework */, - E6F5F421366F1062F96C25902DB7BFD2 /* PureLayout.framework */, - 4621F714C66A3C941F99C7EFD8ED3D70 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - E2A7D3FA8FED9DAF6BC709B458B46525 /* Specta */ = { - isa = PBXGroup; - children = ( - C58ECDACD8D2FD15B5D6F0D6276B0700 /* Specta.h */, - 45EBC5857C0FBA732752E48E9359EDD8 /* SpectaDSL.h */, - 567FED50899A681C87568B30C6A8DDF2 /* SpectaDSL.m */, - 0E225E66B94E712DC093C6724AD11CFD /* SpectaTypes.h */, - 68FDF6EB112C4423747393766720207C /* SpectaUtility.h */, - 749800021466D47EDC1F64E037BF45CC /* SpectaUtility.m */, - A6922487AB8095FA4A248866B59E44EB /* SPTCallSite.h */, - F2326EBC2CEBEDD1AC39E41341CE4A96 /* SPTCallSite.m */, - 4AE18936EDB988BC6D3A33128764D642 /* SPTCompiledExample.h */, - 4F85577F3A8EFCC75870860E9CFCD164 /* SPTCompiledExample.m */, - 8AAA1981FD0C38B91AE527BE960EE881 /* SPTExample.h */, - AADBF70B3B9D2D9143BFF2AC688B29D1 /* SPTExample.m */, - B19A9279E73679D3F9F1DFAEA13E347C /* SPTExampleGroup.h */, - 563BDF7C8114F5105A8038CFD0803495 /* SPTExampleGroup.m */, - 2BC4279D7351FD3A726A6EF02FC8ED19 /* SPTExcludeGlobalBeforeAfterEach.h */, - 4DBFEEB0166000625503662CDE93CDF3 /* SPTGlobalBeforeAfterEach.h */, - 957CBE35D3FC82EDC76EDF33D58CC14A /* SPTSharedExampleGroups.h */, - E172DFC29EE8C2A36AEC06644DCCA25D /* SPTSharedExampleGroups.m */, - 0566C8B9ADE96B49FC01A2B3E52421BE /* SPTSpec.h */, - 20327CEB6D3F13297BDAB7FE6026920E /* SPTSpec.m */, - 416F8ABB7F7E98CB081B7F19F9EB2F92 /* SPTTestSuite.h */, - 58380708EFDF326D68D6060E486CB90D /* SPTTestSuite.m */, - 543F7BDA4F5F79573CAA43601F700A67 /* XCTest+Private.h */, - 03F0E7D7379464D80A5585C3D68EF9BF /* XCTestCase+Specta.h */, - CC4EC6D3BB6C4AAB71B02968CCEB66EA /* XCTestCase+Specta.m */, - D0370DE86B87E489F9AF431610178DD3 /* Support Files */, - ); - path = Specta; - sourceTree = ""; - }; - FD92B3AD787566F87818EB869C872F59 /* Core */ = { - isa = PBXGroup; - children = ( - C3F02F121BD9AAA950DEC5C89D564638 /* FBSnapshotTestCase.h */, - 8B977762C348A6EDA1883600F1DCFE58 /* FBSnapshotTestCase.m */, - 3B8BA7F1B66924CA150C782F5DD71763 /* FBSnapshotTestCasePlatform.h */, - 47E9000729E4BF417953FB356297ADC3 /* FBSnapshotTestCasePlatform.m */, - 76148374B1A8C1EE9BF4C8D44A477428 /* FBSnapshotTestController.h */, - A3238F2F8580E2D38D5628A33F934CFA /* FBSnapshotTestController.m */, - 393BCCE5FB0CAEDC7193DE9EBE3A4E09 /* UIImage+Compare.h */, - 49B0983683A73B0A5B7A4FB352CBD58A /* UIImage+Compare.m */, - 6296391EB02733986480B8C3B38C1751 /* UIImage+Diff.h */, - 3251AD74FAC3B67F2A03E3F30133557D /* UIImage+Diff.m */, - 05543C138878FE2F76FA1482DE5F50D0 /* UIImage+Snapshot.h */, - 8EBE0B34BA8C3C5428B651C33628FFEC /* UIImage+Snapshot.m */, - ); - name = Core; - sourceTree = ""; - }; - FDA4458458FFF781EABF8F25A06B490E /* Support Files */ = { - isa = PBXGroup; - children = ( - 53C8060B20388BDEA288843D2FAA8749 /* FBSnapshotTestCase.modulemap */, - 4F719753BD46AC4A79F8FAE6B7A60BD9 /* FBSnapshotTestCase.xcconfig */, - 173AC2808350B2FCFA846157AE99C71D /* FBSnapshotTestCase-dummy.m */, - 91F059E3298F34C1DD6BD93980CD997D /* FBSnapshotTestCase-prefix.pch */, - E6E6D4534F1730616FF47535F95B2D36 /* Info.plist */, + 489D711EBBF6D05C896D2937986DEDCA /* Expecta.modulemap */, + CE68526079FF32AB937DB3E25C280551 /* Expecta.xcconfig */, + 7AC957DEF87E6A9F6B306C7388893038 /* Expecta-dummy.m */, + ECD245CC42C29877A9AF78AE8929E082 /* Expecta-prefix.pch */, + 2423FED05E77BF592A237ACFB7D45CE0 /* Expecta-umbrella.h */, + 030C4DB51F0DDB0669E772BFCFE9C104 /* Info.plist */, ); name = "Support Files"; - path = "../Target Support Files/FBSnapshotTestCase"; + path = "../Target Support Files/Expecta"; + sourceTree = ""; + }; + FF6AD647D01470104CD51032BCDDFB23 /* FBSnapshotTestCase */ = { + isa = PBXGroup; + children = ( + 27D467D20BD8E2FFCD0ED25864543161 /* Core */, + BB326F9E6D84D2EB1D7C956550DD8102 /* Support Files */, + 1881BB5164FD31A261CCFB62B8894E75 /* SwiftSupport */, + ); + path = FBSnapshotTestCase; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 13245866A0FA9CFE52EB0E322C80A93A /* Headers */ = { + 0B15ACBFEFE60D005E263CAA80B56064 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1F0DDAD8051AFDC85E1C7CE42CEFE024 /* Pods-PNImagePickerViewController_Example-umbrella.h in Headers */, + 3A296D151BCD4D2C4077CAAA448A3F6F /* DGActivityIndicatorAnimationProtocol.h in Headers */, + 6A52028A42CC4DF7615602D7220F10EC /* DGActivityIndicatorBallBeatAnimation.h in Headers */, + B430582BF4ECDE5DA729E32D7801AC46 /* DGActivityIndicatorBallClipRotateAnimation.h in Headers */, + 15F4CD739A0EDE86912D1530E917B57A /* DGActivityIndicatorBallClipRotateMultipleAnimation.h in Headers */, + 883438908E72EDB6864A50F2D8A1E640 /* DGActivityIndicatorBallClipRotatePulseAnimation.h in Headers */, + B14F635E504FBCC9C7FB53491C5F43CF /* DGActivityIndicatorBallGridBeatAnimation.h in Headers */, + 2DA140470AD85B2CCFB7213E92E08D71 /* DGActivityIndicatorBallGridPulseAnimation.h in Headers */, + 9A7EC672396A59E69FECD2247C0CEB4A /* DGActivityIndicatorBallPulseAnimation.h in Headers */, + B3D6FD60E6CB653FCD3D4D9C680E2795 /* DGActivityIndicatorBallPulseSyncAnimation.h in Headers */, + 9A388C9AD29318111DA4BD9B0E904507 /* DGActivityIndicatorBallRotateAnimation.h in Headers */, + 4F3F87E6BBF8AE5DC7194DAC3874E50C /* DGActivityIndicatorBallScaleAnimation.h in Headers */, + AB8B19DFC68C46BA609EC9467715054E /* DGActivityIndicatorBallScaleMultipleAnimation.h in Headers */, + 902A1271DB996151FE1BE7AF43EA3194 /* DGActivityIndicatorBallScaleRippleAnimation.h in Headers */, + 1AB5058C0B562ECF9AB105FD43010686 /* DGActivityIndicatorBallScaleRippleMultipleAnimation.h in Headers */, + E2BEA93256B26EA7D1C8F402B3786C40 /* DGActivityIndicatorBallSpinFadeLoader.h in Headers */, + BB9F3C679F0D948D111B2713F1CA5F6A /* DGActivityIndicatorBallTrianglePathAnimation.h in Headers */, + DD0CF102363A373C3D8F44E4929D50D3 /* DGActivityIndicatorBallZigZagAnimation.h in Headers */, + B9E66BFCBCE3F60A331D3E985C2206E1 /* DGActivityIndicatorBallZigZagDeflectAnimation.h in Headers */, + 17682BE883A2F4C49C8EFC6D2E1EA54A /* DGActivityIndicatorCookieTerminatorAnimation.h in Headers */, + F827541D56D5F4EFB385B5D4B94B47C9 /* DGActivityIndicatorDoubleBounceAnimation.h in Headers */, + BBCA0A1AACF7BAB7864FCD0719B78C85 /* DGActivityIndicatorFiveDotsAnimation.h in Headers */, + FA538AB69B24F23BAD0822FBC8854194 /* DGActivityIndicatorLineScaleAnimation.h in Headers */, + 43CAE225BF09A06CBDBF7E4CDE0BECC8 /* DGActivityIndicatorLineScalePartyAnimation.h in Headers */, + 725C6B9DADF105D8368E507CF57D6BAC /* DGActivityIndicatorLineScalePulseOutAnimation.h in Headers */, + 2E17210766F697F9AD9103CAFBD8BBE6 /* DGActivityIndicatorLineScalePulseOutRapidAnimation.h in Headers */, + 3172B83647ECB68754D95036683F599E /* DGActivityIndicatorNineDotsAnimation.h in Headers */, + 702573B4B747660E66FE7CCED6C669D1 /* DGActivityIndicatorRotatingSandglassAnimation.h in Headers */, + 38451C426B6EFF7A2C108D93D362E4FE /* DGActivityIndicatorRotatingSquaresAnimation.h in Headers */, + 7B95A5748C7BA6F77B9AE06C673BEABD /* DGActivityIndicatorRotatingTrigonAnimation.h in Headers */, + 8A45630674D1B21D9F08C4253A97FDE3 /* DGActivityIndicatorThreeDotsAnimation.h in Headers */, + 0C2B4BE785E3A2C20BF8446EB1146F1D /* DGActivityIndicatorTriangleSkewSpinAnimation.h in Headers */, + 507F973A0B3FE19FAF4E2CD83A088010 /* DGActivityIndicatorTriplePulseAnimation.h in Headers */, + 99FA387F351E05B19E84C8FE1933D03F /* DGActivityIndicatorTripleRingsAnimation.h in Headers */, + D820364E60396B6CBA51EC6661B1D2D5 /* DGActivityIndicatorTwoDotsAnimation.h in Headers */, + 31BCE71DD41D9B408054A722E9F287F1 /* DGActivityIndicatorView-umbrella.h in Headers */, + CB13A851913814EEE6A164233BF15074 /* DGActivityIndicatorView.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 27BDB612E6600F7141DAAA402A902000 /* Headers */ = { + 368AEF33AC534D522789267A56701661 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E4A96998069826E71AC9408A8D53B772 /* NSString+HexColor.h in Headers */, - BD6235346E7F7116E42D25320126EA98 /* PNCollectionViewCell.h in Headers */, - 79E61152676FBAF9799E4F1DCA969CF2 /* PNImagePickerViewController-umbrella.h in Headers */, - 2FF07674284F10FF5382D0AEAB764FB0 /* PNImagePickerViewController.h in Headers */, + BD2ED2404EDA84144DB0768D4CB395DA /* Pods-PNImagePickerViewController_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8FB01615761213E34DCCB4C6D1ACDF95 /* Headers */ = { + 81AA967EF082DB6A6085BE3FE701251A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 774FE3A849D9CEA65AB50972674CE4C6 /* Pods-PNImagePickerViewController_Tests-umbrella.h in Headers */, + B8F47580F2927FDFDE0D13C0202397FF /* NSString+HexColor.h in Headers */, + 52C1413101DBAD2E6BAA08486027B442 /* PNCollectionViewCell.h in Headers */, + 9EB86D65E0F4539991EDB74E005FAFB9 /* PNImagePickerViewController-umbrella.h in Headers */, + 92195EBD209DAC07D160B51545A0A369 /* PNImagePickerViewController.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 84EC2896FA7A2F6616DFB89B360BD09C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 241CD4A833129705FA86C1A7775BCD64 /* Pods-PNImagePickerViewController_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1052,6 +1371,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9EF278B887891A1F3B9BD617954CCC3C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + EC33D67A80A7BA5516439B4172D42FAE /* ALView+PureLayout.h in Headers */, + FC135FB1692AE8604C4D6797ECAA76FD /* NSArray+PureLayout.h in Headers */, + D37AFA364E628E29732267EC31B71872 /* NSLayoutConstraint+PureLayout.h in Headers */, + EB6C20023507C33D7BC9D90400017578 /* PureLayout+Internal.h in Headers */, + E765CCC0E62A0FFEE777FFAF49FC4BA4 /* PureLayout-umbrella.h in Headers */, + 4AACC51171BB2ECC9839B155DCDCA6E2 /* PureLayout.h in Headers */, + B8D1584645F450DAAF200880BAA74653 /* PureLayoutDefines.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BA0FDF67467F294ACFEF3C734E0A426A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1062,40 +1395,26 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BF90EF59A85943F6A27FA9DD5E78D3F5 /* Headers */ = { + EE2E8C9F13421CA29E0E617CDCCB0329 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1303C5017F898BD7F98DB1BD1AFFAB49 /* Specta-umbrella.h in Headers */, - 278432744E184DE2FAAC997F0455021F /* Specta.h in Headers */, - 5BF1E1FBAE24D8B3CA47C9FC381296DF /* SpectaDSL.h in Headers */, - C733E814C226F0AA7C6C7915E6FA3D90 /* SpectaTypes.h in Headers */, - AB6685722275C4592751D73600321350 /* SpectaUtility.h in Headers */, - 55BF89A8370D6D6E6971AC4F0D7B86FD /* SPTCallSite.h in Headers */, - 47DE038D397A1D8D169BEA7C24549EF4 /* SPTCompiledExample.h in Headers */, - 48A3244684540E73970769D236CE8793 /* SPTExample.h in Headers */, - FAD264330709B586D2D5B17B4A7040C3 /* SPTExampleGroup.h in Headers */, - 29923C8237C2521B7761DFBA1176AEF6 /* SPTExcludeGlobalBeforeAfterEach.h in Headers */, - 3F5AFB158433D800A9AE61CB744054B0 /* SPTGlobalBeforeAfterEach.h in Headers */, - 202982C27067054C061304D6A53C9830 /* SPTSharedExampleGroups.h in Headers */, - 2AE7AC04A02ABF5575E481C2AC56BAA4 /* SPTSpec.h in Headers */, - A4AC67807A52576C168C0606BC9C783A /* SPTTestSuite.h in Headers */, - 0C1DCD965236FA97FD51175704561126 /* XCTest+Private.h in Headers */, - E0E4B1728B841A7E77AB9FF263F0502B /* XCTestCase+Specta.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DD3ACD9DEA6F25AD1E2CF659A4B11E53 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D1A5F519C1BBBEEE77F66B515FC3D66 /* ALView+PureLayout.h in Headers */, - 2374C44ACA9EB74301CC387D2C99587D /* NSArray+PureLayout.h in Headers */, - A3372B44BC67F60CE578D36F6BA3530A /* NSLayoutConstraint+PureLayout.h in Headers */, - F14F53742FD27FA7A2C5CF692E801898 /* PureLayout+Internal.h in Headers */, - 89BAEBD7FF6D270EECD5AA2EBAAD22E5 /* PureLayout-umbrella.h in Headers */, - A4ABC102CBD31F39E80EFEA4AB7A738E /* PureLayout.h in Headers */, - 1993857B26D7AFE6B3C888986768FDE2 /* PureLayoutDefines.h in Headers */, + 5081D4B9B305CB5C932267775E5ADC2A /* Specta-umbrella.h in Headers */, + EC5286583893E586356B8C5F2694CA9E /* Specta.h in Headers */, + FE6F3A032E8925AEFFEA944577220CEB /* SpectaDSL.h in Headers */, + C285942DD34A96C733769422CEE02CA3 /* SpectaTypes.h in Headers */, + 60EE56156353DBD86C94EC96DB54E651 /* SpectaUtility.h in Headers */, + 1AF22165F17B51F824A2E6F2B786BCA1 /* SPTCallSite.h in Headers */, + 518CC071482B901809FCE048F495D7A3 /* SPTCompiledExample.h in Headers */, + D2FE91536E78BD05E507972108A75529 /* SPTExample.h in Headers */, + 3ECA55A9B2E952DC173B3299E4FBFD98 /* SPTExampleGroup.h in Headers */, + 86A95407845729ADD1FB58758215FF2C /* SPTExcludeGlobalBeforeAfterEach.h in Headers */, + 5A5FC892C578E8E09612481FEF1BAC79 /* SPTGlobalBeforeAfterEach.h in Headers */, + BFC6E50B7BC38766BEACD6A26F78D857 /* SPTSharedExampleGroups.h in Headers */, + 459B57299616B93DA2F5C6CC5FF92E2F /* SPTSpec.h in Headers */, + 926C0B755C4D0089E5DDFE92F6FCA90C /* SPTTestSuite.h in Headers */, + 3A051370CC9D40210ACEFCF33F1203AE /* XCTest+Private.h in Headers */, + DE637B30FDD68BDD1D654AB501C6ADF8 /* XCTestCase+Specta.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1129,47 +1448,44 @@ ); name = Expecta; productName = Expecta; - productReference = 5D2E7B136F89A8D5E8D9B527B8F5A555 /* Expecta.framework */; + productReference = C73633D42F997BB2CC5F7CD317983428 /* Expecta.framework */; productType = "com.apple.product-type.framework"; }; - 21517BCEE59047E37A446CC807587934 /* Specta */ = { + 291621037D68F7869D267C25CE205F97 /* DGActivityIndicatorView */ = { isa = PBXNativeTarget; - buildConfigurationList = FE7B905FF421B939093E504FA8416FB9 /* Build configuration list for PBXNativeTarget "Specta" */; + buildConfigurationList = 56C1BE8D7E27D116B111FD8DD19610D7 /* Build configuration list for PBXNativeTarget "DGActivityIndicatorView" */; buildPhases = ( - 1B0F6F0F0C88825E02A0941AB887630B /* Sources */, - CAA11A0174C8A3D794A30E4E29C61B85 /* Frameworks */, - BF90EF59A85943F6A27FA9DD5E78D3F5 /* Headers */, + 39DF7FFC0F815BC75D67EF23B3BF3B59 /* Sources */, + 789680DC514CCA110843719424CF5E71 /* Frameworks */, + 0B15ACBFEFE60D005E263CAA80B56064 /* Headers */, ); buildRules = ( ); dependencies = ( ); - name = Specta; - productName = Specta; - productReference = AF5617EDFECDB96475E8797AE4B46329 /* Specta.framework */; + name = DGActivityIndicatorView; + productName = DGActivityIndicatorView; + productReference = D223EAA67BE5A2DD55396646D758BE37 /* DGActivityIndicatorView.framework */; productType = "com.apple.product-type.framework"; }; - 23D340B60A4AFAC4F736A98B95130BA2 /* Pods-PNImagePickerViewController_Tests */ = { + 4BDE292363656288245B46997FF2565D /* Pods-PNImagePickerViewController_Example */ = { isa = PBXNativeTarget; - buildConfigurationList = A965CE36E5BBB9F4B7E10CE04497D68D /* Build configuration list for PBXNativeTarget "Pods-PNImagePickerViewController_Tests" */; + buildConfigurationList = 5D22AFF48EE9900D8B0ABF3968EAF36C /* Build configuration list for PBXNativeTarget "Pods-PNImagePickerViewController_Example" */; buildPhases = ( - E59B738A7006C1A1BC0981F33DD3C8C0 /* Sources */, - C3F694A7A9B57150F692CCC6CF809986 /* Frameworks */, - 8FB01615761213E34DCCB4C6D1ACDF95 /* Headers */, + 64AF3FDAB444E8D61D091A3B6267A86D /* Sources */, + D4CDB4E6E374235339E25E73AA6E8A20 /* Frameworks */, + 368AEF33AC534D522789267A56701661 /* Headers */, ); buildRules = ( ); dependencies = ( - 3E8666E8062830CA7E6B80029BEBF570 /* PBXTargetDependency */, - 63CE6196F06F78C762EE65F715CC0C25 /* PBXTargetDependency */, - B4DAF485093F85F17C8F9D6D86DF1151 /* PBXTargetDependency */, - 6B0210962967B76806B28BA4C7E656F8 /* PBXTargetDependency */, - 89233824D34D1468C7237A7B776D6115 /* PBXTargetDependency */, - F2719D6C52BBE801E57042E39AB858C6 /* PBXTargetDependency */, + BE693D4DFF6CCDC8218C1BAF7C03ABA5 /* PBXTargetDependency */, + C45C2EE1D9F5CB2FC73A956420847A52 /* PBXTargetDependency */, + BE4CDE2B9D73C6E6B2839527529A7FC3 /* PBXTargetDependency */, ); - name = "Pods-PNImagePickerViewController_Tests"; - productName = "Pods-PNImagePickerViewController_Tests"; - productReference = D26170D9FFE0101C1DC15C07C5AC2494 /* Pods_PNImagePickerViewController_Tests.framework */; + name = "Pods-PNImagePickerViewController_Example"; + productName = "Pods-PNImagePickerViewController_Example"; + productReference = 675F976C5776FA3F706E7AC145321969 /* Pods_PNImagePickerViewController_Example.framework */; productType = "com.apple.product-type.framework"; }; 619F0D28240534293108906FED04836F /* Expecta+Snapshots */ = { @@ -1188,16 +1504,78 @@ ); name = "Expecta+Snapshots"; productName = "Expecta+Snapshots"; - productReference = A823928D76472F638E2F3C697450BDB5 /* Expecta_Snapshots.framework */; + productReference = 80CB643444B41D3FBF41836835733076 /* Expecta_Snapshots.framework */; productType = "com.apple.product-type.framework"; }; - 651F3556BCECD15ACE6DA3826056C550 /* PNImagePickerViewController-PNImagePickerViewController */ = { + 77D82BA0A7F2B41558E8A88DE7B4B189 /* Pods-PNImagePickerViewController_Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 76F91EF3CC28EF7FFE902CF383943B85 /* Build configuration list for PBXNativeTarget "PNImagePickerViewController-PNImagePickerViewController" */; + buildConfigurationList = 7D55E6C0A824D2899ABDFCDC62A0F6D1 /* Build configuration list for PBXNativeTarget "Pods-PNImagePickerViewController_Tests" */; buildPhases = ( - 4F7BBF6DD9541399E0E16254CC057F55 /* Sources */, - 77C8DC8D8019C7EDE5CC25054CEDA12D /* Frameworks */, - E349C217F28CFD7A4A7FCA0377537BC0 /* Resources */, + BF2318C24A5CB1C9E8102EDEC90FC2BA /* Sources */, + 650A130C9C6709D9B126AE89C9FBBDD7 /* Frameworks */, + 84EC2896FA7A2F6616DFB89B360BD09C /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + D359797E4D9FFDF87B125901F86B676D /* PBXTargetDependency */, + 1E4D3611CBD99BA91D68101AD18D4124 /* PBXTargetDependency */, + 5065F836DB47BB47AC27A8D7BE5CC35C /* PBXTargetDependency */, + 375E8096DB619BA636DDE297710D08A8 /* PBXTargetDependency */, + AFBFCD1C05FFA30752CF216F18D6B12E /* PBXTargetDependency */, + B37E1E366CCF9FF9FE3CDA01B0DEB7EE /* PBXTargetDependency */, + A62F0E78119D30C9CDE916C05595F571 /* PBXTargetDependency */, + ); + name = "Pods-PNImagePickerViewController_Tests"; + productName = "Pods-PNImagePickerViewController_Tests"; + productReference = 147B084627125D8A29B3F2BAC904DC2E /* Pods_PNImagePickerViewController_Tests.framework */; + productType = "com.apple.product-type.framework"; + }; + 7B8A0A3B032D30BA25E22641FEA4E157 /* Specta */ = { + isa = PBXNativeTarget; + buildConfigurationList = 190E3CA705CF43BF0BA67FA922D71AAA /* Build configuration list for PBXNativeTarget "Specta" */; + buildPhases = ( + EA51FF0E9AFB1E6ECE161373C5830EB9 /* Sources */, + 3BB815A87B2E552F7E69B3AFBF61E7CE /* Frameworks */, + EE2E8C9F13421CA29E0E617CDCCB0329 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Specta; + productName = Specta; + productReference = 58E0B8BB45BBC17AC81BD13BF13E3E42 /* Specta.framework */; + productType = "com.apple.product-type.framework"; + }; + 7F1E45BB1F97A2978AEC44A8621A23FC /* PNImagePickerViewController */ = { + isa = PBXNativeTarget; + buildConfigurationList = B0FAB996B2DD4D4E8AD36A5183527333 /* Build configuration list for PBXNativeTarget "PNImagePickerViewController" */; + buildPhases = ( + A3FD387B21F937B87C321113CCC1DE08 /* Sources */, + A3CA406BDE0E95EC132DE6F080C10C2E /* Frameworks */, + F38C4733631ED311A10C3630FC9526D1 /* Resources */, + 81AA967EF082DB6A6085BE3FE701251A /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 210B3725FEB38A80A79AB4FF5E54D259 /* PBXTargetDependency */, + 96726EB16885AE2928A5CFA6D0E4C197 /* PBXTargetDependency */, + A2C3804302AFFE09260C0003CA886623 /* PBXTargetDependency */, + ); + name = PNImagePickerViewController; + productName = PNImagePickerViewController; + productReference = 7A1252F4328A210FDB908CC835FD7C61 /* PNImagePickerViewController.framework */; + productType = "com.apple.product-type.framework"; + }; + 9CFB9E3CDB1B8BC26E6D9B0F98A3F9B7 /* PNImagePickerViewController-PNImagePickerViewController */ = { + isa = PBXNativeTarget; + buildConfigurationList = F29049CBB81436EC0DB34D22F4453FAC /* Build configuration list for PBXNativeTarget "PNImagePickerViewController-PNImagePickerViewController" */; + buildPhases = ( + 772FE68AEED8E01EE879FB20BB23AE66 /* Sources */, + 25491B57A89B60E4351CB86DCBD45605 /* Frameworks */, + BE0590B5184D6780EBD4D53F10392D26 /* Resources */, ); buildRules = ( ); @@ -1205,35 +1583,16 @@ ); name = "PNImagePickerViewController-PNImagePickerViewController"; productName = "PNImagePickerViewController-PNImagePickerViewController"; - productReference = 9BE9B9F15F1FC0C7BDDA5C9ED0AF220F /* PNImagePickerViewController.bundle */; + productReference = 095FFF7AB937FBD50319F3D81957EA97 /* PNImagePickerViewController.bundle */; productType = "com.apple.product-type.bundle"; }; - 71DE9043E58C58DEF5414CD6AB84A3DE /* Pods-PNImagePickerViewController_Example */ = { + C2DE51AD1CB9CA89C6FFB652F8A472FB /* PureLayout */ = { isa = PBXNativeTarget; - buildConfigurationList = 1F383D29DD374DAB98FA28FE6DB19F4F /* Build configuration list for PBXNativeTarget "Pods-PNImagePickerViewController_Example" */; + buildConfigurationList = EE3599A7D249D60916D4FCFD417102A8 /* Build configuration list for PBXNativeTarget "PureLayout" */; buildPhases = ( - DAED09FC3F32E1180B41F527BF45E706 /* Sources */, - C8A41C7CCA6F30278B15F814DC7A8314 /* Frameworks */, - 13245866A0FA9CFE52EB0E322C80A93A /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 8A9FD2D30D0F80D6677CF6162621C223 /* PBXTargetDependency */, - FF4D44CDD59FE7D4D5FBC665DB46D8D6 /* PBXTargetDependency */, - ); - name = "Pods-PNImagePickerViewController_Example"; - productName = "Pods-PNImagePickerViewController_Example"; - productReference = F3844FAB6104C0385AC09C2DC5801A0C /* Pods_PNImagePickerViewController_Example.framework */; - productType = "com.apple.product-type.framework"; - }; - 7FE41DC3CF812C74E34FCA5182C46DCD /* PureLayout */ = { - isa = PBXNativeTarget; - buildConfigurationList = 28EF1888BB5588EC5A14D296BD25A457 /* Build configuration list for PBXNativeTarget "PureLayout" */; - buildPhases = ( - 2BEC50F9C1AC55856DE563DB0714AAE1 /* Sources */, - 5FD40AFC02C709F6ED4D9F0C06326705 /* Frameworks */, - DD3ACD9DEA6F25AD1E2CF659A4B11E53 /* Headers */, + 32A9D02F4ECBAD07C40E904687198CA9 /* Sources */, + 809AE6B927D3E56683D94B1B0F1783BC /* Frameworks */, + 9EF278B887891A1F3B9BD617954CCC3C /* Headers */, ); buildRules = ( ); @@ -1241,7 +1600,7 @@ ); name = PureLayout; productName = PureLayout; - productReference = 9EDA6325E8E3E42FBA74C8D748457683 /* PureLayout.framework */; + productReference = F918A586B727C1A846EE70BA920641D6 /* PureLayout.framework */; productType = "com.apple.product-type.framework"; }; D07447EE3CEBB0BCB8D61DFCB8EA915F /* FBSnapshotTestCase */ = { @@ -1258,27 +1617,7 @@ ); name = FBSnapshotTestCase; productName = FBSnapshotTestCase; - productReference = 3B5DC91278AF0B7B1C84CA0D25C7FC08 /* FBSnapshotTestCase.framework */; - productType = "com.apple.product-type.framework"; - }; - FE84737BD4D109801238DAB5722D7DA1 /* PNImagePickerViewController */ = { - isa = PBXNativeTarget; - buildConfigurationList = 6D67EE9FBEA41A7642E41234789E9570 /* Build configuration list for PBXNativeTarget "PNImagePickerViewController" */; - buildPhases = ( - 3B9B29F0D9320D540483047106D73899 /* Sources */, - 41131740B636263BD1EEEC1AE48A5FE5 /* Frameworks */, - 3CB61D7EBF265A002BFDAD298AE786C4 /* Resources */, - 27BDB612E6600F7141DAAA402A902000 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 63E8130BC0840C7A0839A25F4D03FFF8 /* PBXTargetDependency */, - 8F8779D84E871A6CCECBC6FE4E649C59 /* PBXTargetDependency */, - ); - name = PNImagePickerViewController; - productName = PNImagePickerViewController; - productReference = C12D30394F19452C8D319BD3A8525FBE /* PNImagePickerViewController.framework */; + productReference = 82D4DFA38A6720F4452C89F137B0F627 /* FBSnapshotTestCase.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -1298,36 +1637,37 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 97B9907A03FDAC9EF3A5FDB0B78A27E5 /* Products */; + productRefGroup = 1E2E7C82D8C61A506092F62BE420C7D3 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( + 291621037D68F7869D267C25CE205F97 /* DGActivityIndicatorView */, 0D888F29E05E498D0CD91A51D28599A5 /* Expecta */, 619F0D28240534293108906FED04836F /* Expecta+Snapshots */, D07447EE3CEBB0BCB8D61DFCB8EA915F /* FBSnapshotTestCase */, - FE84737BD4D109801238DAB5722D7DA1 /* PNImagePickerViewController */, - 651F3556BCECD15ACE6DA3826056C550 /* PNImagePickerViewController-PNImagePickerViewController */, - 71DE9043E58C58DEF5414CD6AB84A3DE /* Pods-PNImagePickerViewController_Example */, - 23D340B60A4AFAC4F736A98B95130BA2 /* Pods-PNImagePickerViewController_Tests */, - 7FE41DC3CF812C74E34FCA5182C46DCD /* PureLayout */, - 21517BCEE59047E37A446CC807587934 /* Specta */, + 7F1E45BB1F97A2978AEC44A8621A23FC /* PNImagePickerViewController */, + 9CFB9E3CDB1B8BC26E6D9B0F98A3F9B7 /* PNImagePickerViewController-PNImagePickerViewController */, + 4BDE292363656288245B46997FF2565D /* Pods-PNImagePickerViewController_Example */, + 77D82BA0A7F2B41558E8A88DE7B4B189 /* Pods-PNImagePickerViewController_Tests */, + C2DE51AD1CB9CA89C6FFB652F8A472FB /* PureLayout */, + 7B8A0A3B032D30BA25E22641FEA4E157 /* Specta */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 3CB61D7EBF265A002BFDAD298AE786C4 /* Resources */ = { + BE0590B5184D6780EBD4D53F10392D26 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 346833B09DCB096D7E23EF1DF3AA37A3 /* PNImagePickerViewController.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E349C217F28CFD7A4A7FCA0377537BC0 /* Resources */ = { + F38C4733631ED311A10C3630FC9526D1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + C83141848220AE41D1EEFDB859C17CCB /* PNImagePickerViewController.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1349,47 +1689,68 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 1B0F6F0F0C88825E02A0941AB887630B /* Sources */ = { + 32A9D02F4ECBAD07C40E904687198CA9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 184CCD5A7C9B2FDBD13FB45D3D3B99FD /* Specta-dummy.m in Sources */, - F16445694BAA1C8B9B1D639DD27D05EC /* SpectaDSL.m in Sources */, - 35D17528C41E69D04EF227502A8EC77B /* SpectaUtility.m in Sources */, - 13E6BEF790F8746E9BA8849BFAB94E3F /* SPTCallSite.m in Sources */, - C200BCDC767A422FD3C9709B1BEA37E7 /* SPTCompiledExample.m in Sources */, - 8BAA5A5F568886A0D333718CE7B2C3DB /* SPTExample.m in Sources */, - 2F48F56D90BA2AF519FDB5966BF7288F /* SPTExampleGroup.m in Sources */, - 453097252D8DA15ED33554933CDDBD06 /* SPTSharedExampleGroups.m in Sources */, - 378AB5D15998CBD19ABD7E01BED7B391 /* SPTSpec.m in Sources */, - 1AAC27517D2E1C6AC73AE3B609AF359C /* SPTTestSuite.m in Sources */, - 264D55B73E4BE829EFD707ADED9655EB /* XCTestCase+Specta.m in Sources */, + 2E8D4B3DBFA0C31E6BB7D96A8E0F1818 /* ALView+PureLayout.m in Sources */, + 8A0E4A9AF23A9A2A972BE17397ADBD27 /* NSArray+PureLayout.m in Sources */, + 74C3CA26C2C8864B6089E51EBB889655 /* NSLayoutConstraint+PureLayout.m in Sources */, + 140A1BE0D6419A95CBBBA0157B7E340F /* PureLayout-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2BEC50F9C1AC55856DE563DB0714AAE1 /* Sources */ = { + 39DF7FFC0F815BC75D67EF23B3BF3B59 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7C16E367C0BD248774049989B329FEE6 /* ALView+PureLayout.m in Sources */, - B7489960D6579E861620D733D15BE2C1 /* NSArray+PureLayout.m in Sources */, - BB5DD166C1EB3ECED5BB3CFD5524E2F5 /* NSLayoutConstraint+PureLayout.m in Sources */, - 2A7748A0699C2B1BE8ABEA9CFED631FC /* PureLayout-dummy.m in Sources */, + 7DA49190498C084817EDBC72C07A7275 /* DGActivityIndicatorBallBeatAnimation.m in Sources */, + DE5158499A7116BF2B6DF560FD21A88A /* DGActivityIndicatorBallClipRotateAnimation.m in Sources */, + 7D9AF3EF5F280F29EAB684701AD5880C /* DGActivityIndicatorBallClipRotateMultipleAnimation.m in Sources */, + F46030CE704666228CCCD89A59586A99 /* DGActivityIndicatorBallClipRotatePulseAnimation.m in Sources */, + 8EDEEF03336BBB11DCCD9C44BE8BB329 /* DGActivityIndicatorBallGridBeatAnimation.m in Sources */, + 07561F0200CAD92CCDE9E27D69B51032 /* DGActivityIndicatorBallGridPulseAnimation.m in Sources */, + 9F8B0B292DF7731375D7D21F6095A637 /* DGActivityIndicatorBallPulseAnimation.m in Sources */, + 6850450E57AC4796A55FE4DC36619439 /* DGActivityIndicatorBallPulseSyncAnimation.m in Sources */, + F829446E4D6BA30AB151A03970AFB2D8 /* DGActivityIndicatorBallRotateAnimation.m in Sources */, + 70CCE71D9C707719CFE89C7FB88CB4E1 /* DGActivityIndicatorBallScaleAnimation.m in Sources */, + 88009544EDCD424A0008F2D8530A6467 /* DGActivityIndicatorBallScaleMultipleAnimation.m in Sources */, + BB344F817FF547333D72B09B73E47763 /* DGActivityIndicatorBallScaleRippleAnimation.m in Sources */, + 4EBC5098491E4A72C65DE823F45233E1 /* DGActivityIndicatorBallScaleRippleMultipleAnimation.m in Sources */, + 4980117A03B0E96A110B3CB37CC79395 /* DGActivityIndicatorBallSpinFadeLoader.m in Sources */, + E4D2414595D5EB2CC4AC8878DF31FD72 /* DGActivityIndicatorBallTrianglePathAnimation.m in Sources */, + 81C03B62588C3CD53C101D7395FB8BF7 /* DGActivityIndicatorBallZigZagAnimation.m in Sources */, + E99BFA3C549F1641104A1492DD4D2185 /* DGActivityIndicatorBallZigZagDeflectAnimation.m in Sources */, + C6A0ADFB01F5886273F6AD6CB4399A0E /* DGActivityIndicatorCookieTerminatorAnimation.m in Sources */, + 17D18ECCC07E5598886456B73C630F94 /* DGActivityIndicatorDoubleBounceAnimation.m in Sources */, + F708EA5BCF76945F780EEEACB215968D /* DGActivityIndicatorFiveDotsAnimation.m in Sources */, + 9B56777035894EEA07259D2D2A04F93F /* DGActivityIndicatorLineScaleAnimation.m in Sources */, + 1F9BEB9B8BE5906E0BE6309A7DA20E8F /* DGActivityIndicatorLineScalePartyAnimation.m in Sources */, + 370C235D4E25EE97B99C676BBBEF41D6 /* DGActivityIndicatorLineScalePulseOutAnimation.m in Sources */, + 593F06155CDE7ACBBA7476D7AB82F8FB /* DGActivityIndicatorLineScalePulseOutRapidAnimation.m in Sources */, + F70938307E06D652E364D266EA014497 /* DGActivityIndicatorNineDotsAnimation.m in Sources */, + 6B2E0B17FDB03D52543CEC2DCC99A920 /* DGActivityIndicatorRotatingSandglassAnimation.m in Sources */, + D57EE053A502E26C9D9542900DF51746 /* DGActivityIndicatorRotatingSquaresAnimation.m in Sources */, + 78AB27588A0498FBBD085B0F342A8849 /* DGActivityIndicatorRotatingTrigonAnimation.m in Sources */, + 63824AB90301BF4FB0AF39159218BA59 /* DGActivityIndicatorThreeDotsAnimation.m in Sources */, + D087C9CFBF8359F8BE6E8EC885158912 /* DGActivityIndicatorTriangleSkewSpinAnimation.m in Sources */, + 6CE44760279C7F040C589DF3D75AEC3D /* DGActivityIndicatorTriplePulseAnimation.m in Sources */, + B630F28EAA126CCC9BAE21CD3232F559 /* DGActivityIndicatorTripleRingsAnimation.m in Sources */, + C054D6E72B61DACDE9935F0EF7131033 /* DGActivityIndicatorTwoDotsAnimation.m in Sources */, + C88AC66D44949F77E6D5A59F4933571F /* DGActivityIndicatorView-dummy.m in Sources */, + 33331F50BCD2DD67D4C3F1748B164A00 /* DGActivityIndicatorView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3B9B29F0D9320D540483047106D73899 /* Sources */ = { + 64AF3FDAB444E8D61D091A3B6267A86D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 16CB96DE4260C29B5932E729435BD2AD /* NSString+HexColor.m in Sources */, - 0690251E14FB6236B8C0F921AC475FB6 /* PNCollectionViewCell.m in Sources */, - 70967F6B7BDAE8BCBBC039DF9984015C /* PNImagePickerViewController-dummy.m in Sources */, - DA5D8E9EC82544ADAF4A5119C7C4F693 /* PNImagePickerViewController.m in Sources */, + 30A2A1777CBE499A75821D727F01E1F7 /* Pods-PNImagePickerViewController_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4F7BBF6DD9541399E0E16254CC057F55 /* Sources */ = { + 772FE68AEED8E01EE879FB20BB23AE66 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -1406,6 +1767,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + A3FD387B21F937B87C321113CCC1DE08 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 42E94F0AE69576E34A802EDA26333074 /* NSString+HexColor.m in Sources */, + C466053640A702A88943A7882D3F168B /* PNCollectionViewCell.m in Sources */, + A18BC0E827527DDC3DB7416AF5F2C72C /* PNImagePickerViewController-dummy.m in Sources */, + AB50F74629B41A52F9C2707904257801 /* PNImagePickerViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; B239BD93C67DE976C7F3A1AD982A0A58 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1448,30 +1820,52 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DAED09FC3F32E1180B41F527BF45E706 /* Sources */ = { + BF2318C24A5CB1C9E8102EDEC90FC2BA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A8360AF9EB52A18F5FC74182F1FC577D /* Pods-PNImagePickerViewController_Example-dummy.m in Sources */, + A93F972B693470D28C1D77FFC14C3947 /* Pods-PNImagePickerViewController_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E59B738A7006C1A1BC0981F33DD3C8C0 /* Sources */ = { + EA51FF0E9AFB1E6ECE161373C5830EB9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5EE6F0E14E01D6AFF2C5D0A28584D9AF /* Pods-PNImagePickerViewController_Tests-dummy.m in Sources */, + E06A30EE950652F6A084FB4FF1C711A4 /* Specta-dummy.m in Sources */, + 3CA418E8BAC3E1BF4D06F0CA4361253B /* SpectaDSL.m in Sources */, + 1CD3908C83BFAB699660D0B89C6DA093 /* SpectaUtility.m in Sources */, + 35197152F4B84384F210DA8B4F54FFF5 /* SPTCallSite.m in Sources */, + 6F83E4DAB3711B332CD1FC6AF0621DD1 /* SPTCompiledExample.m in Sources */, + 9C6897C2A6416E808C2CA17A15323FAF /* SPTExample.m in Sources */, + 12EF8DAD3D8C3931C75C8B20F5FD2AE9 /* SPTExampleGroup.m in Sources */, + 8709C64037D9CF4E51BDC03EC72161EA /* SPTSharedExampleGroups.m in Sources */, + B5DEF7BFC91B54C75FC489E9C9B78126 /* SPTSpec.m in Sources */, + DC2FF87409A68DBC6EF22FD234C72BD3 /* SPTTestSuite.m in Sources */, + 2CCDA7B640391DF9FB2B60F3C4ED0EEC /* XCTestCase+Specta.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 3E8666E8062830CA7E6B80029BEBF570 /* PBXTargetDependency */ = { + 1E4D3611CBD99BA91D68101AD18D4124 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Expecta; target = 0D888F29E05E498D0CD91A51D28599A5 /* Expecta */; - targetProxy = 83D396FFFD51E051AD4896C4BEC7C3B5 /* PBXContainerItemProxy */; + targetProxy = 73B06B702E27777740D8B4DB209085BD /* PBXContainerItemProxy */; + }; + 210B3725FEB38A80A79AB4FF5E54D259 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DGActivityIndicatorView; + target = 291621037D68F7869D267C25CE205F97 /* DGActivityIndicatorView */; + targetProxy = A1C7D00C68171A02C591F9F25E6B4AE3 /* PBXContainerItemProxy */; + }; + 375E8096DB619BA636DDE297710D08A8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FBSnapshotTestCase; + target = D07447EE3CEBB0BCB8D61DFCB8EA915F /* FBSnapshotTestCase */; + targetProxy = C8455532F2CB7627D811A71E51F38BD4 /* PBXContainerItemProxy */; }; 4ACA793EC27274D41A670C74CD739365 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -1479,47 +1873,59 @@ target = 0D888F29E05E498D0CD91A51D28599A5 /* Expecta */; targetProxy = CCF83280732A67033B72EE54815FFD3F /* PBXContainerItemProxy */; }; - 63CE6196F06F78C762EE65F715CC0C25 /* PBXTargetDependency */ = { + 5065F836DB47BB47AC27A8D7BE5CC35C /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Expecta+Snapshots"; target = 619F0D28240534293108906FED04836F /* Expecta+Snapshots */; - targetProxy = C646DF0ABBA05EB1CFA2F6A24B8A9FAA /* PBXContainerItemProxy */; + targetProxy = CC372CC3A0DBFFB29B67F94CA916224A /* PBXContainerItemProxy */; }; - 63E8130BC0840C7A0839A25F4D03FFF8 /* PBXTargetDependency */ = { + 96726EB16885AE2928A5CFA6D0E4C197 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "PNImagePickerViewController-PNImagePickerViewController"; - target = 651F3556BCECD15ACE6DA3826056C550 /* PNImagePickerViewController-PNImagePickerViewController */; - targetProxy = DCF7ED085C0C4D510878736F8920D8A6 /* PBXContainerItemProxy */; + target = 9CFB9E3CDB1B8BC26E6D9B0F98A3F9B7 /* PNImagePickerViewController-PNImagePickerViewController */; + targetProxy = 269DD24A1A7A5F6D169002C12B5E7DF9 /* PBXContainerItemProxy */; }; - 6B0210962967B76806B28BA4C7E656F8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = PNImagePickerViewController; - target = FE84737BD4D109801238DAB5722D7DA1 /* PNImagePickerViewController */; - targetProxy = 7765DEDE45993B63B9AA156E3F974450 /* PBXContainerItemProxy */; - }; - 89233824D34D1468C7237A7B776D6115 /* PBXTargetDependency */ = { + A2C3804302AFFE09260C0003CA886623 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PureLayout; - target = 7FE41DC3CF812C74E34FCA5182C46DCD /* PureLayout */; - targetProxy = 6B01D766351D59ABC09AC96D739D963F /* PBXContainerItemProxy */; + target = C2DE51AD1CB9CA89C6FFB652F8A472FB /* PureLayout */; + targetProxy = D274548AFDEEF3B00AB19AB2C5D4521C /* PBXContainerItemProxy */; }; - 8A9FD2D30D0F80D6677CF6162621C223 /* PBXTargetDependency */ = { + A62F0E78119D30C9CDE916C05595F571 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Specta; + target = 7B8A0A3B032D30BA25E22641FEA4E157 /* Specta */; + targetProxy = 358C0DEE8508791F076A1EADFAFB13E7 /* PBXContainerItemProxy */; + }; + AFBFCD1C05FFA30752CF216F18D6B12E /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PNImagePickerViewController; - target = FE84737BD4D109801238DAB5722D7DA1 /* PNImagePickerViewController */; - targetProxy = 25D545AF0C131B5A33DE6AC856C932C2 /* PBXContainerItemProxy */; + target = 7F1E45BB1F97A2978AEC44A8621A23FC /* PNImagePickerViewController */; + targetProxy = F4840C68C0492D692E06359BCEDADE14 /* PBXContainerItemProxy */; }; - 8F8779D84E871A6CCECBC6FE4E649C59 /* PBXTargetDependency */ = { + B37E1E366CCF9FF9FE3CDA01B0DEB7EE /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PureLayout; - target = 7FE41DC3CF812C74E34FCA5182C46DCD /* PureLayout */; - targetProxy = 02C606CD56CADA7FF7771A0F41C332B4 /* PBXContainerItemProxy */; + target = C2DE51AD1CB9CA89C6FFB652F8A472FB /* PureLayout */; + targetProxy = 92C1F32D11BF83451749FF3EB767D9F0 /* PBXContainerItemProxy */; }; - B4DAF485093F85F17C8F9D6D86DF1151 /* PBXTargetDependency */ = { + BE4CDE2B9D73C6E6B2839527529A7FC3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FBSnapshotTestCase; - target = D07447EE3CEBB0BCB8D61DFCB8EA915F /* FBSnapshotTestCase */; - targetProxy = 82B55322802EC90372810696DA7E5480 /* PBXContainerItemProxy */; + name = PureLayout; + target = C2DE51AD1CB9CA89C6FFB652F8A472FB /* PureLayout */; + targetProxy = 44513364046675581B4B669F53EC5992 /* PBXContainerItemProxy */; + }; + BE693D4DFF6CCDC8218C1BAF7C03ABA5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DGActivityIndicatorView; + target = 291621037D68F7869D267C25CE205F97 /* DGActivityIndicatorView */; + targetProxy = 3769A1E369BC13F8F4792E813A72474C /* PBXContainerItemProxy */; + }; + C45C2EE1D9F5CB2FC73A956420847A52 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = PNImagePickerViewController; + target = 7F1E45BB1F97A2978AEC44A8621A23FC /* PNImagePickerViewController */; + targetProxy = A950CBC5BEEABD51B7B5148463CEA672 /* PBXContainerItemProxy */; }; CFC3C60C0541C54818441E331A7E8753 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -1527,24 +1933,18 @@ target = D07447EE3CEBB0BCB8D61DFCB8EA915F /* FBSnapshotTestCase */; targetProxy = F9BBA6CBCE0B1A136EAFACE5185B512D /* PBXContainerItemProxy */; }; - F2719D6C52BBE801E57042E39AB858C6 /* PBXTargetDependency */ = { + D359797E4D9FFDF87B125901F86B676D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Specta; - target = 21517BCEE59047E37A446CC807587934 /* Specta */; - targetProxy = 77E6E93D39DA113B90AF7616159755B1 /* PBXContainerItemProxy */; - }; - FF4D44CDD59FE7D4D5FBC665DB46D8D6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = PureLayout; - target = 7FE41DC3CF812C74E34FCA5182C46DCD /* PureLayout */; - targetProxy = 037C447B9E4583FED14E4E492EAB8B04 /* PBXContainerItemProxy */; + name = DGActivityIndicatorView; + target = 291621037D68F7869D267C25CE205F97 /* DGActivityIndicatorView */; + targetProxy = A2B99F10A96C79DCA9DCEC68D7D2CB82 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 12AE6F83274C7A824845A8BF52BA16DF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4F719753BD46AC4A79F8FAE6B7A60BD9 /* FBSnapshotTestCase.xcconfig */; + baseConfigurationReference = E567BB4987D9A997C1EE3F4644EEF81A /* FBSnapshotTestCase.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1571,25 +1971,9 @@ }; name = Release; }; - 1965B6BE6D14EE5813652BC17E8B70E0 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3E76906C21A6360E59BAB98FB678511A /* PNImagePickerViewController.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/PNImagePickerViewController/ResourceBundle-PNImagePickerViewController-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = PNImagePickerViewController; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 1BD8423F9E51E0E25A5BC39E697CBF01 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4F719753BD46AC4A79F8FAE6B7A60BD9 /* FBSnapshotTestCase.xcconfig */; + baseConfigurationReference = E567BB4987D9A997C1EE3F4644EEF81A /* FBSnapshotTestCase.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1617,9 +2001,105 @@ }; name = Debug; }; + 255C63F6F267ECE87164F56829ECA5D6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ACEB5B1D16C37F59E5D415018626CCA1 /* Pods-PNImagePickerViewController_Tests.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-PNImagePickerViewController_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_PNImagePickerViewController_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 2B9AE26B6018624A346FE33F70A78210 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2BD49C93526619102F2D474766196B38 /* Pods-PNImagePickerViewController_Example.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-PNImagePickerViewController_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_PNImagePickerViewController_Example; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 2BFC01AD0A3E0CF87BED1B709FF470B1 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5B3492B4CB56B72013F1118941E24121 /* Specta.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/Specta/Specta-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Specta/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Specta/Specta.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = Specta; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 2F914909F85A5B7FA381E7629A0FFB17 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 561534F9468BFFFCD27420D9028EAF1D /* Expecta+Snapshots.xcconfig */; + baseConfigurationReference = BD09CC45A3B67ED88F774603432C5C9B /* Expecta+Snapshots.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1648,7 +2128,7 @@ }; 373349C30AA02CB77851CFF553DFAE5C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 561534F9468BFFFCD27420D9028EAF1D /* Expecta+Snapshots.xcconfig */; + baseConfigurationReference = BD09CC45A3B67ED88F774603432C5C9B /* Expecta+Snapshots.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1675,71 +2155,9 @@ }; name = Debug; }; - 435F223D245E301D06EA7C9385806DAE /* Release */ = { + 499B51E89DE913F548809267B8B8C4EB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2C6E94DA05F91DF35F74319DC6F0DF33 /* Specta.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Specta/Specta-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Specta/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Specta/Specta.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Specta; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 48C22ED69DEDF1DF7633F4DCDC508AA7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 93BEE7CACAD612FBBE99E8998D378EA4 /* Pods-PNImagePickerViewController_Example.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-PNImagePickerViewController_Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_PNImagePickerViewController_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 7813B4E239095F012A7DD63CFA6457E3 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0CD0F5EFF1B3472519F5B4EE821A38E4 /* PureLayout.xcconfig */; + baseConfigurationReference = E406AD314CFBBF655B9B07A0F8EE6325 /* PureLayout.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1766,9 +2184,9 @@ }; name = Release; }; - 7955380EBD03ECE0CE978F559C9A7D2F /* Debug */ = { + 7932A6070CCE19AE9BF9D6272D73BBBF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3E76906C21A6360E59BAB98FB678511A /* PNImagePickerViewController.xcconfig */; + baseConfigurationReference = BDD6AEA3AAE1E01362FA42A2A36ECEFC /* DGActivityIndicatorView.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1779,14 +2197,14 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/PNImagePickerViewController/PNImagePickerViewController-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PNImagePickerViewController/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/DGActivityIndicatorView/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/PNImagePickerViewController/PNImagePickerViewController.modulemap"; + MODULEMAP_FILE = "Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = PNImagePickerViewController; + PRODUCT_NAME = DGActivityIndicatorView; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1834,7 +2252,7 @@ }; 86B3AF85DF2958967D7E96849C2BE84C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 214647B96EB8D7B1FA18DD92A6EA3917 /* Expecta.xcconfig */; + baseConfigurationReference = CE68526079FF32AB937DB3E25C280551 /* Expecta.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1902,25 +2320,9 @@ }; name = Debug; }; - AAA03FA29AD636E5D24C5854E6FB4628 /* Debug */ = { + 8F4035F50791107EC4B57A462C81E12C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3E76906C21A6360E59BAB98FB678511A /* PNImagePickerViewController.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/PNImagePickerViewController/ResourceBundle-PNImagePickerViewController-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PRODUCT_NAME = PNImagePickerViewController; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - BF4BF4B751BF8A15245688B66BA1CAE7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0CD0F5EFF1B3472519F5B4EE821A38E4 /* PureLayout.xcconfig */; + baseConfigurationReference = 93BEE7CACAD612FBBE99E8998D378EA4 /* Pods-PNImagePickerViewController_Example.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -1931,86 +2333,27 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/PureLayout/PureLayout-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PureLayout/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/PureLayout/PureLayout.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = PureLayout; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - C113BE0720F9B93B6FFDFDC800E8658D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2C6E94DA05F91DF35F74319DC6F0DF33 /* Specta.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Specta/Specta-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Specta/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Specta/Specta.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = Specta; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - E601195658655916E341917BC347BDD0 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ACEB5B1D16C37F59E5D415018626CCA1 /* Pods-PNImagePickerViewController_Tests.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-PNImagePickerViewController_Tests/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PNImagePickerViewController_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_PNImagePickerViewController_Tests; + PRODUCT_NAME = Pods_PNImagePickerViewController_Example; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - E92B824F17ED6F1BC5D3092D11112874 /* Release */ = { + 978DDEA47BA4D1F59923568DC600AEF8 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 3E76906C21A6360E59BAB98FB678511A /* PNImagePickerViewController.xcconfig */; buildSettings = { @@ -2039,69 +2382,23 @@ }; name = Release; }; - F24F328AA1CFC9A061F629C917D03F44 /* Release */ = { + 9AB4657CF93F1BF3729DD814FA17FD7F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 214647B96EB8D7B1FA18DD92A6EA3917 /* Expecta.xcconfig */; + baseConfigurationReference = 3E76906C21A6360E59BAB98FB678511A /* PNImagePickerViewController.xcconfig */; buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Expecta/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + INFOPLIST_FILE = "Target Support Files/PNImagePickerViewController/ResourceBundle-PNImagePickerViewController-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Expecta/Expecta.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Expecta; + PRODUCT_NAME = PNImagePickerViewController; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + WRAPPER_EXTENSION = bundle; }; name = Release; }; - FC4AA29982CC7A0BCF0806798B1552EC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2BD49C93526619102F2D474766196B38 /* Pods-PNImagePickerViewController_Example.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-PNImagePickerViewController_Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_PNImagePickerViewController_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - FEBBDDB572A6B5EB2376766424894472 /* Release */ = { + 9F554922A5D7F1DB0BF8BE79A2D148D5 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = D78F728DA45B9D043472FCF4315E60C7 /* Pods-PNImagePickerViewController_Tests.release.xcconfig */; buildSettings = { @@ -2134,23 +2431,175 @@ }; name = Release; }; + A21B3A7E5100CABC6A133994B6032F62 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3E76906C21A6360E59BAB98FB678511A /* PNImagePickerViewController.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/PNImagePickerViewController/ResourceBundle-PNImagePickerViewController-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = PNImagePickerViewController; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + EB2FE8FD0B29B27356BFBBA452F5BE7C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5B3492B4CB56B72013F1118941E24121 /* Specta.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/Specta/Specta-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Specta/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Specta/Specta.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = Specta; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + F24F328AA1CFC9A061F629C917D03F44 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CE68526079FF32AB937DB3E25C280551 /* Expecta.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Expecta/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Expecta/Expecta.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = Expecta; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + F39F64DC6F7F1FF7246D958725FB6E5C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BDD6AEA3AAE1E01362FA42A2A36ECEFC /* DGActivityIndicatorView.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/DGActivityIndicatorView/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = DGActivityIndicatorView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FC6E52A4F0315222982B12BC3B359C24 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3E76906C21A6360E59BAB98FB678511A /* PNImagePickerViewController.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/PNImagePickerViewController/PNImagePickerViewController-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PNImagePickerViewController/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PNImagePickerViewController/PNImagePickerViewController.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = PNImagePickerViewController; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + FDE4DF61C375CD76542DAE802484D6A3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E406AD314CFBBF655B9B07A0F8EE6325 /* PureLayout.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/PureLayout/PureLayout-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PureLayout/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/PureLayout/PureLayout.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = PureLayout; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 1F383D29DD374DAB98FA28FE6DB19F4F /* Build configuration list for PBXNativeTarget "Pods-PNImagePickerViewController_Example" */ = { + 190E3CA705CF43BF0BA67FA922D71AAA /* Build configuration list for PBXNativeTarget "Specta" */ = { isa = XCConfigurationList; buildConfigurations = ( - 48C22ED69DEDF1DF7633F4DCDC508AA7 /* Debug */, - FC4AA29982CC7A0BCF0806798B1552EC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 28EF1888BB5588EC5A14D296BD25A457 /* Build configuration list for PBXNativeTarget "PureLayout" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BF4BF4B751BF8A15245688B66BA1CAE7 /* Debug */, - 7813B4E239095F012A7DD63CFA6457E3 /* Release */, + EB2FE8FD0B29B27356BFBBA452F5BE7C /* Debug */, + 2BFC01AD0A3E0CF87BED1B709FF470B1 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2164,20 +2613,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6D67EE9FBEA41A7642E41234789E9570 /* Build configuration list for PBXNativeTarget "PNImagePickerViewController" */ = { + 56C1BE8D7E27D116B111FD8DD19610D7 /* Build configuration list for PBXNativeTarget "DGActivityIndicatorView" */ = { isa = XCConfigurationList; buildConfigurations = ( - 7955380EBD03ECE0CE978F559C9A7D2F /* Debug */, - E92B824F17ED6F1BC5D3092D11112874 /* Release */, + 7932A6070CCE19AE9BF9D6272D73BBBF /* Debug */, + F39F64DC6F7F1FF7246D958725FB6E5C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 76F91EF3CC28EF7FFE902CF383943B85 /* Build configuration list for PBXNativeTarget "PNImagePickerViewController-PNImagePickerViewController" */ = { + 5D22AFF48EE9900D8B0ABF3968EAF36C /* Build configuration list for PBXNativeTarget "Pods-PNImagePickerViewController_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - AAA03FA29AD636E5D24C5854E6FB4628 /* Debug */, - 1965B6BE6D14EE5813652BC17E8B70E0 /* Release */, + 8F4035F50791107EC4B57A462C81E12C /* Debug */, + 2B9AE26B6018624A346FE33F70A78210 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2191,11 +2640,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A965CE36E5BBB9F4B7E10CE04497D68D /* Build configuration list for PBXNativeTarget "Pods-PNImagePickerViewController_Tests" */ = { + 7D55E6C0A824D2899ABDFCDC62A0F6D1 /* Build configuration list for PBXNativeTarget "Pods-PNImagePickerViewController_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - E601195658655916E341917BC347BDD0 /* Debug */, - FEBBDDB572A6B5EB2376766424894472 /* Release */, + 255C63F6F267ECE87164F56829ECA5D6 /* Debug */, + 9F554922A5D7F1DB0BF8BE79A2D148D5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B0FAB996B2DD4D4E8AD36A5183527333 /* Build configuration list for PBXNativeTarget "PNImagePickerViewController" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FC6E52A4F0315222982B12BC3B359C24 /* Debug */, + 978DDEA47BA4D1F59923568DC600AEF8 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2218,11 +2676,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - FE7B905FF421B939093E504FA8416FB9 /* Build configuration list for PBXNativeTarget "Specta" */ = { + EE3599A7D249D60916D4FCFD417102A8 /* Build configuration list for PBXNativeTarget "PureLayout" */ = { isa = XCConfigurationList; buildConfigurations = ( - C113BE0720F9B93B6FFDFDC800E8658D /* Debug */, - 435F223D245E301D06EA7C9385806DAE /* Release */, + FDE4DF61C375CD76542DAE802484D6A3 /* Debug */, + 499B51E89DE913F548809267B8B8C4EB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F29049CBB81436EC0DB34D22F4453FAC /* Build configuration list for PBXNativeTarget "PNImagePickerViewController-PNImagePickerViewController" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A21B3A7E5100CABC6A133994B6032F62 /* Debug */, + 9AB4657CF93F1BF3729DD814FA17FD7F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/PNImagePickerViewController.xcscheme b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/PNImagePickerViewController.xcscheme index 2d07561..6469a8d 100644 --- a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/PNImagePickerViewController.xcscheme +++ b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/PNImagePickerViewController.xcscheme @@ -14,7 +14,7 @@ buildForArchiving = "YES"> diff --git a/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-dummy.m b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-dummy.m new file mode 100644 index 0000000..4a7dee9 --- /dev/null +++ b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_DGActivityIndicatorView : NSObject +@end +@implementation PodsDummy_DGActivityIndicatorView +@end diff --git a/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-prefix.pch b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-prefix.pch new file mode 100644 index 0000000..aa992a4 --- /dev/null +++ b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-prefix.pch @@ -0,0 +1,4 @@ +#ifdef __OBJC__ +#import +#endif + diff --git a/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-umbrella.h b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-umbrella.h new file mode 100644 index 0000000..e5843de --- /dev/null +++ b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView-umbrella.h @@ -0,0 +1,41 @@ +#import + +#import "DGActivityIndicatorBallBeatAnimation.h" +#import "DGActivityIndicatorBallClipRotateAnimation.h" +#import "DGActivityIndicatorBallClipRotateMultipleAnimation.h" +#import "DGActivityIndicatorBallClipRotatePulseAnimation.h" +#import "DGActivityIndicatorBallGridBeatAnimation.h" +#import "DGActivityIndicatorBallGridPulseAnimation.h" +#import "DGActivityIndicatorBallPulseAnimation.h" +#import "DGActivityIndicatorBallPulseSyncAnimation.h" +#import "DGActivityIndicatorBallRotateAnimation.h" +#import "DGActivityIndicatorBallScaleAnimation.h" +#import "DGActivityIndicatorBallScaleMultipleAnimation.h" +#import "DGActivityIndicatorBallScaleRippleAnimation.h" +#import "DGActivityIndicatorBallScaleRippleMultipleAnimation.h" +#import "DGActivityIndicatorBallSpinFadeLoader.h" +#import "DGActivityIndicatorBallTrianglePathAnimation.h" +#import "DGActivityIndicatorBallZigZagAnimation.h" +#import "DGActivityIndicatorBallZigZagDeflectAnimation.h" +#import "DGActivityIndicatorCookieTerminatorAnimation.h" +#import "DGActivityIndicatorDoubleBounceAnimation.h" +#import "DGActivityIndicatorFiveDotsAnimation.h" +#import "DGActivityIndicatorLineScaleAnimation.h" +#import "DGActivityIndicatorLineScalePartyAnimation.h" +#import "DGActivityIndicatorLineScalePulseOutAnimation.h" +#import "DGActivityIndicatorLineScalePulseOutRapidAnimation.h" +#import "DGActivityIndicatorNineDotsAnimation.h" +#import "DGActivityIndicatorRotatingSandglassAnimation.h" +#import "DGActivityIndicatorRotatingSquaresAnimation.h" +#import "DGActivityIndicatorRotatingTrigonAnimation.h" +#import "DGActivityIndicatorThreeDotsAnimation.h" +#import "DGActivityIndicatorTriangleSkewSpinAnimation.h" +#import "DGActivityIndicatorTriplePulseAnimation.h" +#import "DGActivityIndicatorTripleRingsAnimation.h" +#import "DGActivityIndicatorTwoDotsAnimation.h" +#import "DGActivityIndicatorAnimationProtocol.h" +#import "DGActivityIndicatorView.h" + +FOUNDATION_EXPORT double DGActivityIndicatorViewVersionNumber; +FOUNDATION_EXPORT const unsigned char DGActivityIndicatorViewVersionString[]; + diff --git a/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.modulemap b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.modulemap new file mode 100644 index 0000000..154cb35 --- /dev/null +++ b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.modulemap @@ -0,0 +1,6 @@ +framework module DGActivityIndicatorView { + umbrella header "DGActivityIndicatorView-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.xcconfig b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.xcconfig new file mode 100644 index 0000000..3c1dcbc --- /dev/null +++ b/Example/Pods/Target Support Files/DGActivityIndicatorView/DGActivityIndicatorView.xcconfig @@ -0,0 +1,6 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" +OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" +PODS_ROOT = ${SRCROOT} +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/DGActivityIndicatorView/Info.plist b/Example/Pods/Target Support Files/DGActivityIndicatorView/Info.plist new file mode 100644 index 0000000..0a12077 --- /dev/null +++ b/Example/Pods/Target Support Files/DGActivityIndicatorView/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-acknowledgements.markdown index 88a3679..688a251 100644 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-acknowledgements.markdown @@ -1,6 +1,32 @@ # Acknowledgements This application makes use of the following third party libraries: +## DGActivityIndicatorView + +The MIT License (MIT) + +Copyright (c) 2015 Danil Gontovnik + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + ## PNImagePickerViewController Copyright (c) 2016 Giuseppe Nucifora diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-acknowledgements.plist index 7ed9665..ff567de 100644 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-acknowledgements.plist @@ -12,6 +12,36 @@ Type PSGroupSpecifier + + FooterText + The MIT License (MIT) + +Copyright (c) 2015 Danil Gontovnik + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + Title + DGActivityIndicatorView + Type + PSGroupSpecifier + FooterText Copyright (c) 2016 Giuseppe Nucifora <me@giuseppenucifora.com> diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-frameworks.sh index b3c9031..5724724 100755 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example-frameworks.sh @@ -84,10 +84,12 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "Pods-PNImagePickerViewController_Example/DGActivityIndicatorView.framework" install_framework "Pods-PNImagePickerViewController_Example/PNImagePickerViewController.framework" install_framework "Pods-PNImagePickerViewController_Example/PureLayout.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "Pods-PNImagePickerViewController_Example/DGActivityIndicatorView.framework" install_framework "Pods-PNImagePickerViewController_Example/PNImagePickerViewController.framework" install_framework "Pods-PNImagePickerViewController_Example/PureLayout.framework" fi diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.debug.xcconfig index 6661632..90d62ad 100644 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.debug.xcconfig @@ -1,6 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/PNImagePickerViewController.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PureLayout.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "PNImagePickerViewController" -framework "PureLayout" +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/DGActivityIndicatorView.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNImagePickerViewController.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PureLayout.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "DGActivityIndicatorView" -framework "PNImagePickerViewController" -framework "PureLayout" PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-PNImagePickerViewController_Example" PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.release.xcconfig index 6661632..90d62ad 100644 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Example/Pods-PNImagePickerViewController_Example.release.xcconfig @@ -1,6 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/PNImagePickerViewController.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PureLayout.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "PNImagePickerViewController" -framework "PureLayout" +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/DGActivityIndicatorView.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNImagePickerViewController.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PureLayout.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "DGActivityIndicatorView" -framework "PNImagePickerViewController" -framework "PureLayout" PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-PNImagePickerViewController_Example" PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-acknowledgements.markdown index 04d959f..d3dd2d2 100644 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-acknowledgements.markdown @@ -1,6 +1,32 @@ # Acknowledgements This application makes use of the following third party libraries: +## DGActivityIndicatorView + +The MIT License (MIT) + +Copyright (c) 2015 Danil Gontovnik + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + ## PNImagePickerViewController Copyright (c) 2016 Giuseppe Nucifora diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-acknowledgements.plist index 21c783d..09b51c1 100644 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-acknowledgements.plist @@ -12,6 +12,36 @@ Type PSGroupSpecifier + + FooterText + The MIT License (MIT) + +Copyright (c) 2015 Danil Gontovnik + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + Title + DGActivityIndicatorView + Type + PSGroupSpecifier + FooterText Copyright (c) 2016 Giuseppe Nucifora <me@giuseppenucifora.com> diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-frameworks.sh b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-frameworks.sh index d6d31af..727c9b6 100755 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests-frameworks.sh @@ -84,6 +84,7 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "Pods-PNImagePickerViewController_Tests/DGActivityIndicatorView.framework" install_framework "Pods-PNImagePickerViewController_Tests/PNImagePickerViewController.framework" install_framework "Pods-PNImagePickerViewController_Tests/PureLayout.framework" install_framework "Pods-PNImagePickerViewController_Tests/Expecta.framework" @@ -92,6 +93,7 @@ if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "Pods-PNImagePickerViewController_Tests/Specta.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "Pods-PNImagePickerViewController_Tests/DGActivityIndicatorView.framework" install_framework "Pods-PNImagePickerViewController_Tests/PNImagePickerViewController.framework" install_framework "Pods-PNImagePickerViewController_Tests/PureLayout.framework" install_framework "Pods-PNImagePickerViewController_Tests/Expecta.framework" diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.debug.xcconfig index bc24e87..b0c85d8 100644 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.debug.xcconfig @@ -1,8 +1,8 @@ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/Expecta.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Expecta_Snapshots.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNImagePickerViewController.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PureLayout.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Specta.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "Expecta" -framework "Expecta_Snapshots" -framework "FBSnapshotTestCase" -framework "PNImagePickerViewController" -framework "PureLayout" -framework "Specta" +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/DGActivityIndicatorView.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Expecta.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Expecta_Snapshots.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNImagePickerViewController.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PureLayout.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Specta.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "DGActivityIndicatorView" -framework "Expecta" -framework "Expecta_Snapshots" -framework "FBSnapshotTestCase" -framework "PNImagePickerViewController" -framework "PureLayout" -framework "Specta" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-PNImagePickerViewController_Tests" PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.release.xcconfig index bc24e87..b0c85d8 100644 --- a/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNImagePickerViewController_Tests/Pods-PNImagePickerViewController_Tests.release.xcconfig @@ -1,8 +1,8 @@ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/Expecta.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Expecta_Snapshots.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNImagePickerViewController.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PureLayout.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Specta.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "Expecta" -framework "Expecta_Snapshots" -framework "FBSnapshotTestCase" -framework "PNImagePickerViewController" -framework "PureLayout" -framework "Specta" +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/DGActivityIndicatorView.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Expecta.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Expecta_Snapshots.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/FBSnapshotTestCase.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PNImagePickerViewController.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/PureLayout.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Specta.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "DGActivityIndicatorView" -framework "Expecta" -framework "Expecta_Snapshots" -framework "FBSnapshotTestCase" -framework "PNImagePickerViewController" -framework "PureLayout" -framework "Specta" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-PNImagePickerViewController_Tests" PODS_ROOT = ${SRCROOT}/Pods diff --git a/PNImagePickerViewController.podspec b/PNImagePickerViewController.podspec index ec14a28..9e2693d 100644 --- a/PNImagePickerViewController.podspec +++ b/PNImagePickerViewController.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |s| s.name = "PNImagePickerViewController" s.version = "0.1.0" -s.summary = "PNImagePickerViewController is a fork of jacobsieradzki/JSImagePickerController with iOS8+ PhotoKit support." + s.summary = "PNImagePickerViewController is a fork of jacobsieradzki/JSImagePickerController with iOS8+ PhotoKit support." # This description is used to generate tags and improve search results. # * Think: What does it do? Why did you write it? What is the focus? @@ -18,11 +18,11 @@ s.summary = "PNImagePickerViewController is a fork of jacobsieradzki/JS # * Finally, don't worry about the indent, CocoaPods strips it! # s.description = <<-DESC DESC - s.homepage = "https://github.com//PNImagePickerViewController" + s.homepage = "https://github.com/giuseppenucifora/PNImagePickerViewController" # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" s.license = 'MIT' s.author = { "Giuseppe Nucifora" => "me@giuseppenucifora.com" } - s.source = { :git => "https://github.com//PNImagePickerViewController.git", :tag => s.version.to_s } + s.source = { :git => "https://github.com/giuseppenucifora/PNImagePickerViewController.git", :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/' s.platform = :ios, '7.0' @@ -36,4 +36,5 @@ s.summary = "PNImagePickerViewController is a fork of jacobsieradzki/JS # s.public_header_files = 'Pod/Classes/**/*.h' s.frameworks = 'Photos', 'PhotosUI' s.dependency 'PureLayout' + s.dependency 'DGActivityIndicatorView' end diff --git a/Pod/Classes/PNCollectionViewCell.m b/Pod/Classes/PNCollectionViewCell.m index 4351c82..757907c 100644 --- a/Pod/Classes/PNCollectionViewCell.m +++ b/Pod/Classes/PNCollectionViewCell.m @@ -8,10 +8,12 @@ #import "PNCollectionViewCell.h" #import +#import @interface PNCollectionViewCell() @property (nonatomic, strong) UIImageView *photoImageView; +@property (nonatomic, strong) MMMaterialDesignSpinner *loadingSpinner; @end @@ -21,20 +23,6 @@ return [NSStringFromClass([self class]) stringByAppendingString:@"Identifier"]; } -- (instancetype) init { - self = [super init]; - - if (self) { - [self.contentView setTranslatesAutoresizingMaskIntoConstraints:NO]; - - _photoImageView = [UIImageView newAutoLayoutView]; - [_photoImageView setContentMode:UIViewContentModeScaleAspectFill]; - - [self.contentView addSubview:_photoImageView]; - } - return self; -} - - (instancetype) initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { @@ -42,8 +30,12 @@ _photoImageView = [UIImageView newAutoLayoutView]; [_photoImageView setContentMode:UIViewContentModeScaleAspectFill]; + [_photoImageView.layer setCornerRadius:4]; + [_photoImageView.layer setMasksToBounds:YES]; [self.contentView addSubview:_photoImageView]; + + _loadingSpinner = [MMMaterialDesignSpinner newAutoLayoutView]; } return self; } @@ -56,13 +48,12 @@ self.didUpdateConstraints = YES; - [self.contentView autoPinEdgesToSuperviewEdges]; - [_photoImageView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:5]; - [_photoImageView autoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:5]; - [_photoImageView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:10]; - [_photoImageView autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:10]; + [_photoImageView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:8]; + [_photoImageView autoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:8]; + [_photoImageView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:8]; + [_photoImageView autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:8]; [_photoImageView autoAlignAxisToSuperviewAxis:ALAxisVertical]; [_photoImageView autoAlignAxisToSuperviewAxis:ALAxisHorizontal]; } diff --git a/Pod/Classes/PNImagePickerViewController.h b/Pod/Classes/PNImagePickerViewController.h index de310e5..c1025a9 100644 --- a/Pod/Classes/PNImagePickerViewController.h +++ b/Pod/Classes/PNImagePickerViewController.h @@ -16,10 +16,10 @@ - (void)imagePicker:(PNImagePickerViewController *)imagePicker didSelectImage:(UIImage *)image; -- (void)imagePicker:(PNImagePickerViewController *)imagePicker donwloadImageWithProgress:(double )progress; - @optional +- (void)imagePicker:(PNImagePickerViewController *)imagePicker donwloadImageWithProgress:(double )progress; + - (void)imagePickerDidOpen; - (void)imagePickerWillOpen; @@ -63,17 +63,11 @@ - - @interface TransitionDelegate : NSObject @end - - - - @interface AnimatedTransitioning : NSObject @property (nonatomic, assign) BOOL isPresenting; diff --git a/Pod/Classes/PNImagePickerViewController.m b/Pod/Classes/PNImagePickerViewController.m index a4e6811..f0f4533 100644 --- a/Pod/Classes/PNImagePickerViewController.m +++ b/Pod/Classes/PNImagePickerViewController.m @@ -12,6 +12,7 @@ #import #import "PNCollectionViewCell.h" #import "NSString+HexColor.h" +#import #pragma mark - PNImagePickerViewController - @@ -25,18 +26,21 @@ @property (nonatomic) NSTimeInterval animationTime; @property (nonatomic, strong) UIViewController *targetController; -@property (nonatomic, strong) UIWindow *window; @property (nonatomic, strong) UIView *backgroundView; @property (nonatomic, strong) UIView *imagePickerView; +@property (nonatomic, strong) UIView *separator1; +@property (nonatomic, strong) UIView *separator2; +@property (nonatomic, strong) UIView *separator3; -@property (nonatomic) CGRect imagePickerFrame; -@property (nonatomic) CGRect hiddenFrame; +@property (nonatomic, strong) NSLayoutConstraint *hideConstraint; @property (nonatomic) TransitionDelegate *transitionController; @property (nonatomic, strong) NSMutableArray *assets; +@property (nonatomic, assign) BOOL didUpdateConstraints; + @end @implementation PNImagePickerViewController @@ -47,110 +51,179 @@ - (id)init { self = [super init]; if (self) { - self.assets = [[NSMutableArray alloc] init]; + _assets = [[NSMutableArray alloc] init]; _targetSize = CGSizeMake(1024, 1024); - [self setupView]; + _haveCamera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]; + _animationTime = 0.4; + + } return self; } -- (void)setupView { +- (void) viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor clearColor]; - self.window = [UIApplication sharedApplication].keyWindow; - - self.haveCamera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]; - CGFloat localImagePickerHeight = imagePickerHeight; - if (!self.haveCamera) { - localImagePickerHeight -= 47.0f; - } - self.imagePickerFrame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height-localImagePickerHeight, [UIScreen mainScreen].bounds.size.width, localImagePickerHeight); - self.hiddenFrame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width, localImagePickerHeight); - self.imagePickerView = [[UIView alloc] initWithFrame:self.hiddenFrame]; - self.imagePickerView.backgroundColor = [UIColor whiteColor]; + _imagePickerView = [UIView newAutoLayoutView]; + [_imagePickerView setBackgroundColor:[UIColor whiteColor]]; - self.backgroundView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; - self.backgroundView.backgroundColor = [UIColor colorWithWhite:0.1 alpha:0.7]; - self.backgroundView.alpha = 0; + _backgroundView = [UIView newAutoLayoutView]; + _backgroundView.backgroundColor = [UIColor colorWithWhite:0.1 alpha:0.7]; + _backgroundView.alpha = 0; UITapGestureRecognizer *dismissTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismiss)]; - self.backgroundView.userInteractionEnabled = YES; - [self.backgroundView addGestureRecognizer:dismissTap]; + _backgroundView.userInteractionEnabled = YES; + [_backgroundView addGestureRecognizer:dismissTap]; + [self.view addSubview:_backgroundView]; - self.animationTime = 0.2; - - [self.window addSubview:self.backgroundView]; - [self.window addSubview:self.imagePickerView]; - - UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, self.imagePickerView.frame.size.width, 50)]; - [btn setTitle:@"Hello!" forState:UIControlStateNormal]; - [btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; - [btn addTarget:self action:@selector(setDefaults) forControlEvents:UIControlEventTouchUpInside]; - - [self.imagePickerView addSubview:btn]; - - [self imagePickerViewSetup]; - [self getCameraRollImages]; -} - -- (void)imagePickerViewSetup { - CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width; - - const CGRect collectionViewFrame = CGRectMake(7, 8, screenWidth-7-7, 122); - const CGRect libraryBtnFrame = CGRectMake(0, 149, screenWidth, 30); - const CGRect cameraBtnFrame = CGRectMake(0, self.haveCamera ? 196 : 0, screenWidth, 30); - const CGRect cancelBtnFrame = CGRectMake(0, self.haveCamera ? 242 : 196, screenWidth, 30); - UICollectionViewFlowLayout *aFlowLayout = [[UICollectionViewFlowLayout alloc] init]; [aFlowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; - self.collectionView = [[UICollectionView alloc] initWithFrame:collectionViewFrame collectionViewLayout:aFlowLayout]; - [self.collectionView setBackgroundColor:[UIColor whiteColor]]; - self.collectionView.showsHorizontalScrollIndicator = NO; - self.collectionView.showsVerticalScrollIndicator = NO; - self.collectionView.delegate = self; - self.collectionView.dataSource = self; - [self.collectionView registerClass:[PNCollectionViewCell class] forCellWithReuseIdentifier:[PNCollectionViewCell cellIdentifier]]; + + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, 0, 0) collectionViewLayout:aFlowLayout]; + [_collectionView setTranslatesAutoresizingMaskIntoConstraints:NO]; + [_collectionView setBackgroundColor:[UIColor whiteColor]]; + _collectionView.showsHorizontalScrollIndicator = NO; + _collectionView.showsVerticalScrollIndicator = NO; + _collectionView.delegate = self; + _collectionView.dataSource = self; + [_collectionView registerClass:[PNCollectionViewCell class] forCellWithReuseIdentifier:[PNCollectionViewCell cellIdentifier]]; UIFont *btnFont = [UIFont systemFontOfSize:19.0]; - self.photoLibraryBtn = [[UIButton alloc] initWithFrame:libraryBtnFrame]; - [self.photoLibraryBtn setTitle:@"Photo Library" forState:UIControlStateNormal]; - self.photoLibraryBtn.titleLabel.font = btnFont; - [self.photoLibraryBtn addTarget:self action:@selector(selectFromLibraryWasPressed) forControlEvents:UIControlEventTouchUpInside]; + _photoLibraryBtn = [UIButton newAutoLayoutView]; + [_photoLibraryBtn setTitle:NSLocalizedString(@"Photo Library",@"") forState:UIControlStateNormal]; + _photoLibraryBtn.titleLabel.font = btnFont; + [_photoLibraryBtn addTarget:self action:@selector(selectFromLibraryWasPressed) forControlEvents:UIControlEventTouchUpInside]; + [_photoLibraryBtn setTitleColor:[@"0b60fe" colorFromHex] forState:UIControlStateNormal]; + [_photoLibraryBtn setTitleColor:[@"70b3fd" colorFromHex] forState:UIControlStateHighlighted]; - self.cameraBtn = [[UIButton alloc] initWithFrame:cameraBtnFrame]; - [self.cameraBtn setTitle:@"Take Photo" forState:UIControlStateNormal]; - self.cameraBtn.titleLabel.font = btnFont; - [self.cameraBtn addTarget:self action:@selector(takePhotoWasPressed) forControlEvents:UIControlEventTouchUpInside]; - self.cameraBtn.hidden = !self.haveCamera; + _cancelBtn = [UIButton newAutoLayoutView]; + [_cancelBtn setTitle:NSLocalizedString(@"Cancel",@"") forState:UIControlStateNormal]; + _cancelBtn.titleLabel.font = btnFont; + [_cancelBtn addTarget:self action:@selector(dismiss) forControlEvents:UIControlEventTouchUpInside]; + [_cancelBtn setTitleColor:[@"0b60fe" colorFromHex] forState:UIControlStateNormal]; + [_cancelBtn setTitleColor:[@"70b3fd" colorFromHex] forState:UIControlStateHighlighted]; - self.cancelBtn = [[UIButton alloc] initWithFrame:cancelBtnFrame]; - [self.cancelBtn setTitle:@"Cancel" forState:UIControlStateNormal]; - self.cancelBtn.titleLabel.font = btnFont; - [self.cancelBtn addTarget:self action:@selector(dismiss) forControlEvents:UIControlEventTouchUpInside]; - for (UIButton *btn in @[self.photoLibraryBtn, self.cameraBtn, self.cancelBtn]) { - [btn setTitleColor:[@"0b60fe" colorFromHex] forState:UIControlStateNormal]; - [btn setTitleColor:[@"70b3fd" colorFromHex] forState:UIControlStateHighlighted]; + + _separator2 = [UIView newAutoLayoutView]; + _separator2.backgroundColor = [@"cacaca" colorFromHex]; + [_imagePickerView addSubview:_separator2]; + + _separator3 = [UIView newAutoLayoutView]; + _separator3.backgroundColor = [@"cacaca" colorFromHex]; + [_imagePickerView addSubview:_separator3]; + + if(_haveCamera) { + _cameraBtn = [UIButton newAutoLayoutView]; + [_cameraBtn setTitle:NSLocalizedString(@"Take Photo",@"") forState:UIControlStateNormal]; + _cameraBtn.titleLabel.font = btnFont; + [_cameraBtn addTarget:self action:@selector(takePhotoWasPressed) forControlEvents:UIControlEventTouchUpInside]; + [_cameraBtn setTitleColor:[@"0b60fe" colorFromHex] forState:UIControlStateNormal]; + [_cameraBtn setTitleColor:[@"70b3fd" colorFromHex] forState:UIControlStateHighlighted]; + _cameraBtn.hidden = !_haveCamera; + [_imagePickerView addSubview:_cameraBtn]; + + _separator1 = [UIView newAutoLayoutView]; + _separator1.backgroundColor = [@"cacaca" colorFromHex]; + [_imagePickerView addSubview:_separator1]; } - UIView *separator1 = [[UIView alloc] initWithFrame:CGRectMake(0, 140, screenWidth, 1)]; - separator1.backgroundColor = [@"cacaca" colorFromHex]; - [self.imagePickerView addSubview:separator1]; - UIView *separator2 = [[UIView alloc] initWithFrame:CGRectMake(25, 187, screenWidth-25, 1)]; - separator2.backgroundColor = [@"cacaca" colorFromHex]; - [self.imagePickerView addSubview:separator2]; - UIView *separator3 = [[UIView alloc] initWithFrame:CGRectMake(25, 234, screenWidth-25, 1)]; - separator3.backgroundColor = [@"cacaca" colorFromHex]; - [self.imagePickerView addSubview:separator3]; + [_imagePickerView addSubview:_collectionView]; + [_imagePickerView addSubview:_photoLibraryBtn]; + [_imagePickerView addSubview:_cancelBtn]; - [self.imagePickerView addSubview:self.collectionView]; - [self.imagePickerView addSubview:self.photoLibraryBtn]; - [self.imagePickerView addSubview:self.cameraBtn]; - [self.imagePickerView addSubview:self.cancelBtn]; + [self.view addSubview:_imagePickerView]; + + [self.view setNeedsUpdateConstraints]; + [_imagePickerView setNeedsUpdateConstraints]; + [_collectionView setNeedsUpdateConstraints]; + [_backgroundView setNeedsUpdateConstraints]; + +} + +- (void) updateViewConstraints { + if (!_didUpdateConstraints) { + _didUpdateConstraints = YES; + + [_backgroundView autoPinEdgesToSuperviewEdges]; + + [_imagePickerView autoPinEdgeToSuperviewEdge:ALEdgeLeading]; + [_imagePickerView autoPinEdgeToSuperviewEdge:ALEdgeTrailing]; + _hideConstraint = [_imagePickerView autoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:-imagePickerHeight]; + [_imagePickerView autoSetDimension:ALDimensionHeight toSize:100 relation:NSLayoutRelationGreaterThanOrEqual]; + + + [_cancelBtn autoPinEdgeToSuperviewEdge:ALEdgeLeading]; + [_cancelBtn autoPinEdgeToSuperviewEdge:ALEdgeTrailing]; + [_cancelBtn autoAlignAxisToSuperviewAxis:ALAxisVertical]; + [_cancelBtn autoPinEdgeToSuperviewEdge:ALEdgeBottom withInset:15]; + [_cancelBtn autoSetDimension:ALDimensionHeight toSize:30]; + [_cancelBtn autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:10]; + [_cancelBtn autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:10]; + + [_separator3 autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:10]; + [_separator3 autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:10]; + [_separator3 autoPinEdge:ALEdgeBottom toEdge:ALEdgeTop ofView:_cancelBtn withOffset:-10]; + [_separator3 autoAlignAxisToSuperviewAxis:ALAxisVertical]; + [_separator3 autoSetDimension:ALDimensionHeight toSize:1]; + + [_photoLibraryBtn autoPinEdgeToSuperviewEdge:ALEdgeLeading]; + [_photoLibraryBtn autoPinEdgeToSuperviewEdge:ALEdgeTrailing]; + [_photoLibraryBtn autoAlignAxisToSuperviewAxis:ALAxisVertical]; + [_photoLibraryBtn autoSetDimension:ALDimensionHeight toSize:30]; + [_photoLibraryBtn autoPinEdge:ALEdgeBottom toEdge:ALEdgeTop ofView:_separator3 withOffset:-10]; + [_photoLibraryBtn autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:10]; + [_photoLibraryBtn autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:10]; + + [_separator2 autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:10]; + [_separator2 autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:10]; + [_separator2 autoPinEdge:ALEdgeBottom toEdge:ALEdgeTop ofView:_photoLibraryBtn withOffset:-10]; + [_separator2 autoAlignAxisToSuperviewAxis:ALAxisVertical]; + [_separator2 autoSetDimension:ALDimensionHeight toSize:1]; + + if (_haveCamera) { + [_cameraBtn autoPinEdgeToSuperviewEdge:ALEdgeLeading]; + [_cameraBtn autoPinEdgeToSuperviewEdge:ALEdgeTrailing]; + [_cameraBtn autoAlignAxisToSuperviewAxis:ALAxisVertical]; + [_cameraBtn autoSetDimension:ALDimensionHeight toSize:30]; + [_cameraBtn autoPinEdge:ALEdgeBottom toEdge:ALEdgeTop ofView:_separator2 withOffset:-10]; + [_cameraBtn autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:10]; + [_cameraBtn autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:10]; + + [_separator1 autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:10]; + [_separator1 autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:10]; + [_separator1 autoPinEdge:ALEdgeBottom toEdge:ALEdgeTop ofView:_cameraBtn withOffset:-10]; + [_separator1 autoAlignAxisToSuperviewAxis:ALAxisVertical]; + [_separator1 autoSetDimension:ALDimensionHeight toSize:1]; + } + + [_collectionView autoPinEdgeToSuperviewEdge:ALEdgeLeading]; + [_collectionView autoPinEdgeToSuperviewEdge:ALEdgeTrailing]; + [_collectionView autoAlignAxisToSuperviewAxis:ALAxisVertical]; + [_collectionView autoSetDimension:ALDimensionHeight toSize:122]; + if (_haveCamera) { + [_collectionView autoPinEdge:ALEdgeBottom toEdge:ALEdgeTop ofView:_separator1 withOffset:-15]; + } + else { + [_collectionView autoPinEdge:ALEdgeBottom toEdge:ALEdgeTop ofView:_separator2 withOffset:-15]; + } + + [_collectionView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:10]; + + } + [super updateViewConstraints]; +} + +- (void) viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + + [self getCameraRollImages]; } #pragma mark - Collection view @@ -160,13 +233,13 @@ } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { - return MIN(20, self.assets.count); + return MIN(20, _assets.count); } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { PNCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:[PNCollectionViewCell cellIdentifier] forIndexPath:indexPath]; - PHAsset *asset = self.assets[self.assets.count-1 - indexPath.row]; + PHAsset *asset = _assets[_assets.count-1 - indexPath.row]; PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init]; options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat; @@ -201,7 +274,7 @@ - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { [collectionView deselectItemAtIndexPath:indexPath animated:YES]; - PHAsset *asset = self.assets[self.assets.count-1 - indexPath.row]; + PHAsset *asset = _assets[_assets.count-1 - indexPath.row]; PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init]; options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat; options.networkAccessAllowed = YES; @@ -237,32 +310,31 @@ } - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { - return CGSizeMake(170, 114); + return CGSizeMake(180, 120); } - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { - return 10.0f; + return 0.0f; } #pragma mark - Image library - (void)getCameraRollImages { - _assets = [@[] mutableCopy]; + dispatch_async(dispatch_get_main_queue(), ^{ PHFetchOptions *allPhotosOptions = [PHFetchOptions new]; allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]]; + //[allPhotosOptions setFetchLimit:20]; PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:allPhotosOptions]; [allPhotosResult enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) { - NSLog(@"asset %@", asset); if(asset) { - [self.assets addObject:asset]; + [_assets addObject:asset]; } }]; - - [self.collectionView reloadData]; + [_collectionView reloadData]; }); } @@ -320,34 +392,49 @@ } - (void)showImagePickerInController:(UIViewController *)controller animated:(BOOL)animated { - if (self.isVisible != YES) { + if (_isVisible != YES) { if ([delegate respondsToSelector:@selector(imagePickerWillOpen)]) { [delegate imagePickerWillOpen]; } - self.isVisible = YES; + _isVisible = YES; [self setTransitioningDelegate:transitionController]; self.modalPresentationStyle = UIModalPresentationOverCurrentContext; - [controller presentViewController:self animated:NO completion:nil]; + [controller presentViewController:self animated:NO completion:^{ - if (animated) { - [UIView animateWithDuration:self.animationTime - delay:0 - options:UIViewAnimationOptionCurveLinear - animations:^{ - [self.imagePickerView setFrame:self.imagePickerFrame]; - [self.backgroundView setAlpha:1]; - } - completion:^(BOOL finished) { - if ([delegate respondsToSelector:@selector(imagePickerDidOpen)]) { - [delegate imagePickerDidOpen]; + [_imagePickerView setNeedsUpdateConstraints]; + [_imagePickerView updateConstraintsIfNeeded]; + + if (animated) { + + [UIView animateWithDuration:_animationTime + delay:0.0 + usingSpringWithDamping:1 + initialSpringVelocity:0 + options:0 + animations:^{ + + [_hideConstraint setConstant:0]; + + [_backgroundView setAlpha:1]; + + [_imagePickerView layoutIfNeeded]; } - }]; - } else { - [self.imagePickerView setFrame:self.imagePickerFrame]; - [self.backgroundView setAlpha:0]; - } + completion:^(BOOL finished) { + if ([delegate respondsToSelector:@selector(imagePickerDidOpen)]) { + [delegate imagePickerDidOpen]; + } + }]; + } else { + + [_hideConstraint setConstant:0]; + + [_backgroundView setAlpha:1]; + + [_imagePickerView layoutIfNeeded]; + } + }]; } } @@ -358,32 +445,49 @@ } - (void)dismissAnimated:(BOOL)animated { - if (self.isVisible == YES) { + if (_isVisible == YES) { if ([delegate respondsToSelector:@selector(imagePickerWillClose)]) { [delegate imagePickerWillClose]; } + [_imagePickerView setNeedsUpdateConstraints]; + [_imagePickerView updateConstraintsIfNeeded]; + if (animated) { - [UIView animateWithDuration:self.animationTime - delay:0 - options:UIViewAnimationOptionCurveEaseIn + + [UIView animateWithDuration:_animationTime + delay:0.0 + usingSpringWithDamping:1 + initialSpringVelocity:0 + options:0 animations:^{ - [self.imagePickerView setFrame:self.hiddenFrame]; - [self.backgroundView setAlpha:0]; + + [_hideConstraint setConstant:imagePickerHeight]; + + [_backgroundView setAlpha:0]; + + [_imagePickerView layoutIfNeeded]; } completion:^(BOOL finished) { - [self.imagePickerView removeFromSuperview]; - [self.backgroundView removeFromSuperview]; - [self dismissViewControllerAnimated:NO completion:nil]; - if ([delegate respondsToSelector:@selector(imagePickerDidClose)]) { - [delegate imagePickerDidClose]; - } + [self dismissViewControllerAnimated:YES completion:^{ + if ([delegate respondsToSelector:@selector(imagePickerDidClose)]) { + [delegate imagePickerDidClose]; + } + }]; }]; } else { - [self.imagePickerView setFrame:self.imagePickerFrame]; - [self.backgroundView setAlpha:0]; - } - // Set everything to nil + [_hideConstraint setConstant:imagePickerHeight]; + + [_backgroundView setAlpha:0]; + + [_imagePickerView layoutIfNeeded]; + + [self dismissViewControllerAnimated:NO completion:^{ + if ([delegate respondsToSelector:@selector(imagePickerDidClose)]) { + [delegate imagePickerDidClose]; + } + }]; + } } } @@ -416,12 +520,12 @@ UIView *inView = [transitionContext containerView]; UIViewController *toVC = (UIViewController *)[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; UIViewController *fromVC = (UIViewController *)[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; - + [inView addSubview:toVC.view]; - + CGRect screenRect = [[UIScreen mainScreen] bounds]; [toVC.view setFrame:CGRectMake(0, screenRect.size.height, fromVC.view.frame.size.width, fromVC.view.frame.size.height)]; - + [UIView animateWithDuration:0.25f animations:^{ [toVC.view setFrame:CGRectMake(0, 0, fromVC.view.frame.size.width, fromVC.view.frame.size.height)]; diff --git a/README.md b/README.md index 88bfc7b..1499038 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,26 @@ it, simply add the following line to your Podfile: ```ruby pod "PNImagePickerViewController" +``` + + +```ruby + +#import + +PNImagePickerViewController *imagePicker = [[PNImagePickerViewController alloc] init]; +imagePicker.delegate = self; +[imagePicker showImagePickerInController:self animated:YES]; + + +#pragma mark - PNImagePickerViewControllerDelegate + +- (void)imagePicker:(PNImagePickerViewController *)imagePicker didSelectImage:(UIImage *)image { + self.imageView.image = image; +} + + + ``` ## Author