42 Commits

Author SHA1 Message Date
Mike Maxwell 06e29bdd94 Fixing swiftlint warning 2017-07-15 17:18:24 -07:00
Mike Maxwell 33ca1d8baf Podspec release 0.2.4 2017-07-15 11:01:10 -07:00
Mike Maxwell fed6d7a499 Merge pull request #18 from misterwell/bug/travis-ci
Fixing Travis
2017-07-15 10:58:42 -07:00
Mike Maxwell 5b0b2739eb Using build command for now since no tests are being run so we don't need to specify a device to test on in the build command 2017-07-15 10:24:32 -07:00
Mike Maxwell 268204e539 Specifying osx_image version to use a newer Xcode version 2017-07-15 10:18:19 -07:00
Mike Maxwell b4feed0335 Merge branch 'Panajev-features/ActiivtyIndicatorCompatibility' 2017-07-15 10:10:38 -07:00
Mike Maxwell 419028df50 Making Center-Y constraint of main spinner lower priority so everything can fit on smaller screens 2017-07-15 10:09:31 -07:00
Mike Maxwell 0848f4d077 Merge branch 'features/ActiivtyIndicatorCompatibility' of https://github.com/Panajev/MMMaterialDesignSpinner into Panajev-features/ActiivtyIndicatorCompatibility
# Conflicts:
#	Example/MaterialDesignSpinner.xcodeproj/project.pbxproj
#	Pod/Classes/MMMaterialDesignSpinner.h

Also updating Xcode project files due to latest cocoa pods install
2017-07-15 10:07:03 -07:00
Mike Maxwell 8a67f33bb9 Merge pull request #14 from monzy613/master
add line cap
2017-07-15 09:49:04 -07:00
Goffredo Marocchi 7c54fb571d Improved compatibility.
* Improved compatibility with UIActivityIndicator by providing a protocol compatible with both.
   * Using a common protocol allows the user to make his implementation decoupled from this spinner or UIKit's default one.
 * Improved compatibility with MBProgressHUD by implementing intrinsicContentSize and content size invalidation.

Signed-off-by: Goffredo Marocchi <goffredo.marocchi@gamesys.co.uk>
2017-03-05 14:59:36 +00:00
monzy613 68c7dd768f add line cap 2016-09-25 22:20:57 +08:00
Mike Maxwell 4192455568 Fixing Travis issues 2016-01-27 10:55:32 -08:00
Mike Maxwell 390c839b5f Updating git tag version in podspec 2016-01-27 10:41:48 -08:00
Mike Maxwell b756e812d6 Xcode IB magic voodoo... 2016-01-27 10:30:26 -08:00
Mike Maxwell d5ef7d799d Merge pull request #9 from larcus94/master
Enable codesigning
2016-01-27 10:27:15 -08:00
Mike Maxwell d3c94d1434 Updating Travis config to install cocoa pods for proper builds. 2016-01-27 10:26:32 -08:00
Mike Maxwell 6c25aa3810 Adding duration capability to example app & fixing some build issues 2016-01-27 10:24:33 -08:00
Mike Maxwell eefea9e3ac Merge pull request #8 from basvankuijck/master
Added a `duration` property.
2016-01-27 10:11:58 -08:00
Laurin Brandner 5f9a0fc315 Enable codesigning 2016-01-27 16:03:55 +01:00
Bas van Kuijck 0786c47efd Bump podspec version 2016-01-27 10:18:26 +01:00
Bas van Kuijck 0f2d5cbccd Added duration support 2016-01-27 10:17:57 +01:00
Mike Maxwell e3ea74118a Updating version to 0.2.2 2016-01-25 14:15:27 -08:00
Mike Maxwell e3a4c34296 More podspec updates and adding tvos support 2016-01-24 19:21:35 -08:00
Mike Maxwell 3c3f138437 Merge pull request #7 from misterwell/new-ios-xcode-updates
Updating example to work better with all device sizes
2016-01-24 13:42:17 -08:00
Mike Maxwell 8931c3b457 Podspec & example project usage updates 2016-01-24 13:41:44 -08:00
Mike Maxwell 88c9bfaf00 Updating example to work better with all device sizes 2015-10-10 14:24:17 -07:00
Mike Maxwell 223f0f6146 Merge pull request #6 from devSC/master
Add support Xib & storyBoard
2015-10-10 13:50:45 -07:00
袁仕崇 b9854e388f Fix the animation stopped Bugs when the spinner in a tabbarController 2015-07-25 15:49:18 +08:00
YSC ac9a875902 Fix Read Me Error 2015-07-23 10:05:00 +08:00
YSC 662e865c6e Add Xib supported 2015-07-23 10:02:44 +08:00
Mike Maxwell 8a3528316a Merge pull request #5 from cybertk/carthage
Bump to 0.2.1
2015-07-16 23:07:57 -07:00
Quanlong He 92f8eb081d Bump to 0.2.1 2015-07-01 08:32:14 +08:00
Quanlong He 88f9a65af4 Read framework version in universal way 2015-07-01 08:31:13 +08:00
Quanlong He 3e5b54e097 Fix warning: linking against dylib not safe for use in application extensions 2015-07-01 08:22:45 +08:00
Mike Maxwell 90f5311120 Merge pull request #4 from cybertk/carthage
Carthage Support
2015-06-13 15:37:37 -07:00
Quanlong He d655fa608d Support carthage 2015-06-08 11:09:07 +08:00
Quanlong He cca8522bea Add xcodeproject to build MMMaterialDesignSpinner as framework 2015-06-08 11:05:43 +08:00
Mike Maxwell b38ff7f706 Release 0.2.0. 2015-01-08 23:58:46 -08:00
Mike Maxwell 73e9f07d00 #1 - add convenience method for starting/stopping animation via BOOL variable 2015-01-08 23:55:23 -08:00
Mike Maxwell 761621d049 #2 - add comments to public header file 2015-01-08 23:54:59 -08:00
misterwell b479603ff2 Updated link to demo image 2014-12-28 18:49:00 -08:00
Mike Maxwell 74a409692f Including demo image in ready 2014-12-28 18:45:46 -08:00
61 changed files with 4370 additions and 2239 deletions
+9 -6
View File
@@ -3,12 +3,15 @@
# * https://github.com/supermarin/xcpretty#usage
language: objective-c
# cache: cocoapods
# podfile: Example/Podfile
# before_install:
# - gem install cocoapods # Since Travis is not always on latest version
# - pod install --project-directory=Example
osx_image: xcode8.3
cache: cocoapods
podfile: Example/Podfile
before_install:
- gem install cocoapods # Since Travis is not always on latest version
- pod install --project-directory=Example
install:
- gem install xcpretty --no-rdoc --no-ri --no-document --quiet
script:
- set -o pipefail && xcodebuild test -workspace Example/MaterialDesignSpinner.xcworkspace -scheme MaterialDesignSpinner-Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty -c
# Using `build` command for now since no tests are being run so we don't need to specify a device to test on in the build command
- set -o pipefail && xcodebuild build -workspace Example/MaterialDesignSpinner.xcworkspace -scheme MaterialDesignSpinner-Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty -c
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

@@ -7,15 +7,15 @@
objects = {
/* Begin PBXBuildFile section */
3A504B1A9E68BC6B79EBDB10 /* libPods-Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 26B34E5AF7620B24FEE3CF1D /* libPods-Tests.a */; };
22D2F9D93EE82E3E1977CF45 /* Pods_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D64410849DB4805EE662656 /* Pods_Tests.framework */; };
47EEE3FFC2D6096ECCC812E3 /* Pods_MaterialDesignSpinner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5751A42B9AE2E4AD2DE57D18 /* Pods_MaterialDesignSpinner.framework */; };
6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; };
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; };
6003F592195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; };
6003F598195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F596195388D20070C39A /* InfoPlist.strings */; };
6003F59A195388D20070C39A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F599195388D20070C39A /* main.m */; };
6003F59E195388D20070C39A /* MMAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F59D195388D20070C39A /* MMAppDelegate.m */; };
6003F5A1195388D20070C39A /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6003F59F195388D20070C39A /* Main_iPhone.storyboard */; };
6003F5A4195388D20070C39A /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5A2195388D20070C39A /* Main_iPad.storyboard */; };
6003F5A1195388D20070C39A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6003F59F195388D20070C39A /* Main.storyboard */; };
6003F5A7195388D20070C39A /* MMViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5A6195388D20070C39A /* MMViewController.m */; };
6003F5A9195388D20070C39A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5A8195388D20070C39A /* Images.xcassets */; };
6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F5AF195388D20070C39A /* XCTest.framework */; };
@@ -23,7 +23,7 @@
6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; };
6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; };
6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; };
CBE8C4BA9BCAD038F53C9698 /* libPods-MaterialDesignSpinner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 934CFBABF3E4F604707FEA96 /* libPods-MaterialDesignSpinner.a */; };
DB7295681BC9B25B009FD543 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DB7295661BC9B25B009FD543 /* Launch Screen.storyboard */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -37,7 +37,8 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
26B34E5AF7620B24FEE3CF1D /* libPods-Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
1D64410849DB4805EE662656 /* Pods_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
5751A42B9AE2E4AD2DE57D18 /* Pods_MaterialDesignSpinner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MaterialDesignSpinner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6003F58A195388D20070C39A /* MaterialDesignSpinner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MaterialDesignSpinner.app; sourceTree = BUILT_PRODUCTS_DIR; };
6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
@@ -48,8 +49,7 @@
6003F59B195388D20070C39A /* MaterialDesignSpinner-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MaterialDesignSpinner-Prefix.pch"; sourceTree = "<group>"; };
6003F59C195388D20070C39A /* MMAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MMAppDelegate.h; sourceTree = "<group>"; };
6003F59D195388D20070C39A /* MMAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MMAppDelegate.m; sourceTree = "<group>"; };
6003F5A0195388D20070C39A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPhone.storyboard; sourceTree = "<group>"; };
6003F5A3195388D20070C39A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPad.storyboard; sourceTree = "<group>"; };
6003F5A0195388D20070C39A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
6003F5A5195388D20070C39A /* MMViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MMViewController.h; sourceTree = "<group>"; };
6003F5A6195388D20070C39A /* MMViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MMViewController.m; sourceTree = "<group>"; };
6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
@@ -60,12 +60,12 @@
6003F5BB195388D20070C39A /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = "<group>"; };
606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = "<group>"; };
65935A348F40FBC30D8ACB6A /* Pods-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests/Pods-Tests.debug.xcconfig"; sourceTree = "<group>"; };
934CFBABF3E4F604707FEA96 /* libPods-MaterialDesignSpinner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MaterialDesignSpinner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
B7DACCA6095E381B9FD67CE3 /* Pods-MaterialDesignSpinner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MaterialDesignSpinner.release.xcconfig"; path = "Pods/Target Support Files/Pods-MaterialDesignSpinner/Pods-MaterialDesignSpinner.release.xcconfig"; sourceTree = "<group>"; };
B9F194E218601B8C8CECD92F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
BB285D85DDBCA3BB5368E9D5 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
C8117106087F098A36FCC7F6 /* MMMaterialDesignSpinner.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = MMMaterialDesignSpinner.podspec; path = ../MMMaterialDesignSpinner.podspec; sourceTree = "<group>"; };
D62024797BF9E0256134B3A1 /* Pods-MaterialDesignSpinner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MaterialDesignSpinner.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MaterialDesignSpinner/Pods-MaterialDesignSpinner.debug.xcconfig"; sourceTree = "<group>"; };
DB7295671BC9B25B009FD543 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = "Base.lproj/Launch Screen.storyboard"; sourceTree = "<group>"; };
FFAEBE2A7061ED538B50A755 /* Pods-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests/Pods-Tests.release.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -77,7 +77,7 @@
6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */,
6003F592195388D20070C39A /* UIKit.framework in Frameworks */,
6003F58E195388D20070C39A /* Foundation.framework in Frameworks */,
CBE8C4BA9BCAD038F53C9698 /* libPods-MaterialDesignSpinner.a in Frameworks */,
47EEE3FFC2D6096ECCC812E3 /* Pods_MaterialDesignSpinner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -88,7 +88,7 @@
6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */,
6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */,
6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */,
3A504B1A9E68BC6B79EBDB10 /* libPods-Tests.a in Frameworks */,
22D2F9D93EE82E3E1977CF45 /* Pods_Tests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -123,8 +123,8 @@
6003F58F195388D20070C39A /* CoreGraphics.framework */,
6003F591195388D20070C39A /* UIKit.framework */,
6003F5AF195388D20070C39A /* XCTest.framework */,
934CFBABF3E4F604707FEA96 /* libPods-MaterialDesignSpinner.a */,
26B34E5AF7620B24FEE3CF1D /* libPods-Tests.a */,
5751A42B9AE2E4AD2DE57D18 /* Pods_MaterialDesignSpinner.framework */,
1D64410849DB4805EE662656 /* Pods_Tests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -134,8 +134,8 @@
children = (
6003F59C195388D20070C39A /* MMAppDelegate.h */,
6003F59D195388D20070C39A /* MMAppDelegate.m */,
6003F59F195388D20070C39A /* Main_iPhone.storyboard */,
6003F5A2195388D20070C39A /* Main_iPad.storyboard */,
6003F59F195388D20070C39A /* Main.storyboard */,
DB7295661BC9B25B009FD543 /* Launch Screen.storyboard */,
6003F5A5195388D20070C39A /* MMViewController.h */,
6003F5A6195388D20070C39A /* MMViewController.m */,
6003F5A8195388D20070C39A /* Images.xcassets */,
@@ -202,11 +202,12 @@
isa = PBXNativeTarget;
buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "MaterialDesignSpinner" */;
buildPhases = (
731C5D1EBA5794E26124D6F4 /* Check Pods Manifest.lock */,
731C5D1EBA5794E26124D6F4 /* [CP] Check Pods Manifest.lock */,
6003F586195388D20070C39A /* Sources */,
6003F587195388D20070C39A /* Frameworks */,
6003F588195388D20070C39A /* Resources */,
2A98E41CC76E9893897F26B2 /* Copy Pods Resources */,
2A98E41CC76E9893897F26B2 /* [CP] Copy Pods Resources */,
56DD4FE2938A7DD1B38DED1E /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -221,11 +222,12 @@
isa = PBXNativeTarget;
buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "Tests" */;
buildPhases = (
A13E839F27D2971AFBCF362B /* Check Pods Manifest.lock */,
A13E839F27D2971AFBCF362B /* [CP] Check Pods Manifest.lock */,
6003F5AA195388D20070C39A /* Sources */,
6003F5AB195388D20070C39A /* Frameworks */,
6003F5AC195388D20070C39A /* Resources */,
98136B84922DE7AA6608D78E /* Copy Pods Resources */,
98136B84922DE7AA6608D78E /* [CP] Copy Pods Resources */,
B4F78B6D228E5EE07CDFA45A /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -276,9 +278,9 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6003F5A4195388D20070C39A /* Main_iPad.storyboard in Resources */,
6003F5A9195388D20070C39A /* Images.xcassets in Resources */,
6003F5A1195388D20070C39A /* Main_iPhone.storyboard in Resources */,
6003F5A1195388D20070C39A /* Main.storyboard in Resources */,
DB7295681BC9B25B009FD543 /* Launch Screen.storyboard in Resources */,
6003F598195388D20070C39A /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -294,14 +296,14 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
2A98E41CC76E9893897F26B2 /* Copy Pods Resources */ = {
2A98E41CC76E9893897F26B2 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy Pods Resources";
name = "[CP] Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -309,29 +311,44 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MaterialDesignSpinner/Pods-MaterialDesignSpinner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
731C5D1EBA5794E26124D6F4 /* Check Pods Manifest.lock */ = {
56DD4FE2938A7DD1B38DED1E /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Check Pods Manifest.lock";
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MaterialDesignSpinner/Pods-MaterialDesignSpinner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
98136B84922DE7AA6608D78E /* Copy Pods Resources */ = {
731C5D1EBA5794E26124D6F4 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy Pods Resources";
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
98136B84922DE7AA6608D78E /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -339,19 +356,34 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests/Pods-Tests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
A13E839F27D2971AFBCF362B /* Check Pods Manifest.lock */ = {
A13E839F27D2971AFBCF362B /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Check Pods Manifest.lock";
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
B4F78B6D228E5EE07CDFA45A /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests/Pods-Tests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -394,20 +426,12 @@
name = InfoPlist.strings;
sourceTree = "<group>";
};
6003F59F195388D20070C39A /* Main_iPhone.storyboard */ = {
6003F59F195388D20070C39A /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
6003F5A0195388D20070C39A /* Base */,
);
name = Main_iPhone.storyboard;
sourceTree = "<group>";
};
6003F5A2195388D20070C39A /* Main_iPad.storyboard */ = {
isa = PBXVariantGroup;
children = (
6003F5A3195388D20070C39A /* Base */,
);
name = Main_iPad.storyboard;
name = Main.storyboard;
sourceTree = "<group>";
};
6003F5B8195388D20070C39A /* InfoPlist.strings */ = {
@@ -418,6 +442,14 @@
name = InfoPlist.strings;
sourceTree = "<group>";
};
DB7295661BC9B25B009FD543 /* Launch Screen.storyboard */ = {
isa = PBXVariantGroup;
children = (
DB7295671BC9B25B009FD543 /* Base */,
);
name = "Launch Screen.storyboard";
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
@@ -437,7 +469,6 @@
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
@@ -453,7 +484,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -476,7 +507,6 @@
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -486,7 +516,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
@@ -498,7 +528,6 @@
baseConfigurationReference = D62024797BF9E0256134B3A1 /* Pods-MaterialDesignSpinner.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "MaterialDesignSpinner/MaterialDesignSpinner-Prefix.pch";
INFOPLIST_FILE = "MaterialDesignSpinner/MaterialDesignSpinner-Info.plist";
@@ -512,7 +541,6 @@
baseConfigurationReference = B7DACCA6095E381B9FD67CE3 /* Pods-MaterialDesignSpinner.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "MaterialDesignSpinner/MaterialDesignSpinner-Prefix.pch";
INFOPLIST_FILE = "MaterialDesignSpinner/MaterialDesignSpinner-Info.plist";
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9052" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9040"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright © 2015 Mike Maxwell. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="obG-Y5-kRd">
<rect key="frame" x="20" y="559" width="560" height="21"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MaterialDesignSpinner" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
<rect key="frame" x="20" y="180" width="560" height="43"/>
<animations/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="centerX" secondItem="obG-Y5-kRd" secondAttribute="centerX" id="5cz-MP-9tL"/>
<constraint firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/>
<constraint firstItem="obG-Y5-kRd" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" constant="20" symbolic="YES" id="SfN-ll-jLj"/>
<constraint firstAttribute="bottom" secondItem="obG-Y5-kRd" secondAttribute="bottom" constant="20" id="Y44-ml-fuU"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" constant="20" symbolic="YES" id="x7j-FC-K8j"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="vXZ-lx-hvc">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController id="vXZ-lx-hvc" customClass="MMViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/>
<viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HW3-rr-Akw" customClass="MMMaterialDesignSpinner">
<rect key="frame" x="125" y="271" width="125" height="125"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" secondItem="HW3-rr-Akw" secondAttribute="height" multiplier="1:1" id="eh9-m5-0OE"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bxJ-ep-Qc5">
<rect key="frame" x="140.5" y="416" width="94" height="30"/>
<state key="normal" title="Change Color"/>
<connections>
<action selector="changeColorButtonTouched:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="zUc-r8-e9P"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Umg-oT-Dv1">
<rect key="frame" x="122" y="454" width="131" height="30"/>
<state key="normal" title="Change Line Width"/>
<connections>
<action selector="changeLineWidthButtonTouched:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="Kgo-vV-Mja"/>
</connections>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="P6d-eP-pjF">
<rect key="frame" x="67.5" y="492" width="240" height="30"/>
<subviews>
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="1.5" minValue="0.0" maxValue="10" translatesAutoresizingMaskIntoConstraints="NO" id="BCa-2B-PxA">
<rect key="frame" x="72" y="0.0" width="170" height="31"/>
<constraints>
<constraint firstAttribute="width" constant="166" id="oZZ-eP-B6N"/>
</constraints>
<connections>
<action selector="durationSliderValueUpdated:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="Yt3-t2-Zln"/>
<action selector="durationSliderValueUpdated:" destination="vXZ-lx-hvc" eventType="touchUpOutside" id="btR-st-mNM"/>
</connections>
</slider>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Duration" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oZk-x6-Cbo">
<rect key="frame" x="0.0" y="5.5" width="65.5" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="oZk-x6-Cbo" firstAttribute="centerY" secondItem="BCa-2B-PxA" secondAttribute="centerY" id="9CN-GK-gQI"/>
<constraint firstItem="BCa-2B-PxA" firstAttribute="leading" secondItem="oZk-x6-Cbo" secondAttribute="trailing" constant="8.5" id="E0Y-Nj-D7M"/>
<constraint firstItem="BCa-2B-PxA" firstAttribute="top" secondItem="P6d-eP-pjF" secondAttribute="top" id="MGc-Sw-dlP"/>
<constraint firstItem="oZk-x6-Cbo" firstAttribute="leading" secondItem="P6d-eP-pjF" secondAttribute="leading" id="Qop-uU-SMI"/>
<constraint firstAttribute="bottom" secondItem="BCa-2B-PxA" secondAttribute="bottom" id="rMj-n9-UZP"/>
<constraint firstAttribute="trailing" secondItem="BCa-2B-PxA" secondAttribute="trailing" id="yAh-JG-gqX"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="voE-WH-qy2">
<rect key="frame" x="149.5" y="577" width="76" height="30"/>
<state key="normal" title="Round Cap"/>
<connections>
<action selector="rouncCapButtonPressed:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="2Gq-FN-hQJ"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="E1O-wf-Kab">
<rect key="frame" x="147.5" y="539" width="80" height="30"/>
<state key="normal" title="Square Cap"/>
<connections>
<action selector="squareCapButtonPressed:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="Wea-lk-mor"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MUs-BJ-ux5">
<rect key="frame" x="157.5" y="615" width="61" height="30"/>
<state key="normal" title="Butt Cap"/>
<connections>
<action selector="buttCapButtonPressed:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="swh-1h-iNn"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="2fi-mo-0CV" firstAttribute="top" secondItem="MUs-BJ-ux5" secondAttribute="bottom" constant="22" id="0xl-6Q-hU4"/>
<constraint firstItem="Umg-oT-Dv1" firstAttribute="top" secondItem="bxJ-ep-Qc5" secondAttribute="bottom" constant="8" symbolic="YES" id="1EZ-mV-u15"/>
<constraint firstItem="HW3-rr-Akw" firstAttribute="width" secondItem="kh9-bI-dsS" secondAttribute="width" multiplier="1:3" id="4dr-09-65z"/>
<constraint firstItem="MUs-BJ-ux5" firstAttribute="centerX" secondItem="voE-WH-qy2" secondAttribute="centerX" id="5Rg-aR-c0F"/>
<constraint firstItem="MUs-BJ-ux5" firstAttribute="top" secondItem="voE-WH-qy2" secondAttribute="bottom" constant="8" id="7j5-kf-qx7"/>
<constraint firstItem="Umg-oT-Dv1" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="A0X-DN-AiI"/>
<constraint firstItem="bxJ-ep-Qc5" firstAttribute="top" secondItem="HW3-rr-Akw" secondAttribute="bottom" constant="20" id="Cmt-gg-FUs"/>
<constraint firstItem="voE-WH-qy2" firstAttribute="centerX" secondItem="E1O-wf-Kab" secondAttribute="centerX" id="Hzd-yG-hd7"/>
<constraint firstItem="E1O-wf-Kab" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="IlT-UV-I9g"/>
<constraint firstItem="P6d-eP-pjF" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="LUZ-rw-3h9"/>
<constraint firstItem="bxJ-ep-Qc5" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="NEM-nh-Nf9"/>
<constraint firstItem="E1O-wf-Kab" firstAttribute="top" secondItem="BCa-2B-PxA" secondAttribute="bottom" constant="17" id="SHP-8S-d1T"/>
<constraint firstItem="voE-WH-qy2" firstAttribute="top" secondItem="E1O-wf-Kab" secondAttribute="bottom" constant="8" id="Zad-AA-k4Z"/>
<constraint firstItem="HW3-rr-Akw" firstAttribute="centerY" secondItem="kh9-bI-dsS" secondAttribute="centerY" priority="750" id="c5R-S9-N1n"/>
<constraint firstItem="E1O-wf-Kab" firstAttribute="height" secondItem="voE-WH-qy2" secondAttribute="height" id="i9Y-xv-7zX"/>
<constraint firstItem="HW3-rr-Akw" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="lAp-IZ-ygd"/>
<constraint firstItem="voE-WH-qy2" firstAttribute="height" secondItem="MUs-BJ-ux5" secondAttribute="height" id="wVq-Rn-DCM"/>
<constraint firstItem="P6d-eP-pjF" firstAttribute="top" secondItem="Umg-oT-Dv1" secondAttribute="bottom" constant="8" id="xcT-AQ-2QR"/>
</constraints>
</view>
<connections>
<outlet property="durationSlider" destination="BCa-2B-PxA" id="zNN-IT-kOe"/>
<outlet property="spinnerView" destination="HW3-rr-Akw" id="mkj-d2-eQE"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="571" y="438"/>
</scene>
</scenes>
</document>
@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5023" systemVersion="13A603" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
</dependencies>
<scenes>
<!--class Prefix:identifier View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="MMViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination"/>
</simulatedMetricsContainer>
</document>
@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5023" systemVersion="13A603" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="vXZ-lx-hvc">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
</dependencies>
<scenes>
<!--class Prefix:identifier View Controller-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController id="vXZ-lx-hvc" customClass="MMViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/>
<viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination" type="retina4"/>
</simulatedMetricsContainer>
</document>
@@ -1,5 +1,15 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
@@ -54,6 +64,16 @@
"filename" : "Icon-60@3x.png",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "29x29",
@@ -110,6 +130,11 @@
"idiom" : "ipad",
"filename" : "Icon-76@2x.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "83.5x83.5",
"scale" : "2x"
}
],
"info" : {
@@ -8,52 +8,15 @@
#import "MMViewController.h"
#import <MMMaterialDesignSpinner.h>
#import "MMMaterialDesignSpinner.h"
@interface MMViewController ()
@property (nonatomic, strong) MMMaterialDesignSpinner *spinnerView;
@property (nonatomic, strong) IBOutlet MMMaterialDesignSpinner *spinnerView;
@property (weak, nonatomic) IBOutlet UISlider *durationSlider;
@end
@implementation MMViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.translatesAutoresizingMaskIntoConstraints = NO;
MMMaterialDesignSpinner *spinnerView = [[MMMaterialDesignSpinner alloc] initWithFrame:CGRectZero];
self.spinnerView = spinnerView;
self.spinnerView.bounds = CGRectMake(0, 0, 100, 100);
self.spinnerView.tintColor = [UIColor colorWithRed:215.f/255 green:49.f/255 blue:69.f/255 alpha:1];
self.spinnerView.center = CGPointMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds));
self.spinnerView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.spinnerView];
UIButton *colorChangeButton = [UIButton buttonWithType:UIButtonTypeSystem];
[colorChangeButton setTitle:@"Change color" forState:UIControlStateNormal];
[colorChangeButton addTarget:self action:@selector(changeColorButtonTouched:) forControlEvents:UIControlEventTouchUpInside];
colorChangeButton.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:colorChangeButton];
UIButton *strokeChangeButton = [UIButton buttonWithType:UIButtonTypeSystem];
[strokeChangeButton setTitle:@"Change line width" forState:UIControlStateNormal];
[strokeChangeButton addTarget:self action:@selector(changeLineWidthButtonTouched:) forControlEvents:UIControlEventTouchUpInside];
strokeChangeButton.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:strokeChangeButton];
UIView *superview = self.view;
NSDictionary *views = NSDictionaryOfVariableBindings(spinnerView, colorChangeButton, superview, strokeChangeButton);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[superview]-(<=1)-[spinnerView(80)]-[colorChangeButton]-[strokeChangeButton]"
options:NSLayoutFormatAlignAllCenterX
metrics:nil
views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[superview]-(<=1)-[spinnerView(80)]"
options:NSLayoutFormatAlignAllCenterY
metrics:nil
views:views]];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
@@ -62,15 +25,34 @@
#pragma mark Actions
- (void)changeColorButtonTouched:(id)sender {
- (IBAction)changeColorButtonTouched:(id)sender {
self.spinnerView.tintColor = [MMViewController randomColor];
}
- (void)changeLineWidthButtonTouched:(id)sender {
self.spinnerView.lineWidth = (rand() % 10) / 2.f;
- (IBAction)changeLineWidthButtonTouched:(id)sender {
self.spinnerView.lineWidth = (rand() % 20) / 2.f;
if (self.spinnerView.lineWidth == 0) self.spinnerView.lineWidth = 0.1f;
}
- (IBAction)durationSliderValueUpdated:(id)sender {
[self.spinnerView stopAnimating];
self.spinnerView.duration = self.durationSlider.value;
[self.spinnerView startAnimating];
}
- (IBAction)squareCapButtonPressed:(id)sender {
self.spinnerView.lineCap = kCALineCapSquare;
}
- (IBAction)rouncCapButtonPressed:(id)sender {
self.spinnerView.lineCap = kCALineCapRound;
}
- (IBAction)buttCapButtonPressed:(id)sender {
self.spinnerView.lineCap = kCALineCapButt;
}
#pragma mark Helper methods
+ (UIColor *)randomColor {
@@ -24,10 +24,12 @@
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>Launch Screen</string>
<key>UIMainStoryboardFile</key>
<string>Main_iPhone</string>
<string>Main</string>
<key>UIMainStoryboardFile~ipad</key>
<string>Main_iPad</string>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
+6 -7
View File
@@ -1,11 +1,10 @@
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target 'MaterialDesignSpinner', :exclusive => true do
pod "MaterialDesignSpinner", :path => "../"
target 'MaterialDesignSpinner' do
pod "MMMaterialDesignSpinner", :path => "../"
end
target 'Tests', :exclusive => true do
pod "MaterialDesignSpinner", :path => "../"
target 'Tests' do
pod "MMMaterialDesignSpinner", :path => "../"
end
+8 -6
View File
@@ -1,14 +1,16 @@
PODS:
- MaterialDesignSpinner (0.1.0)
- MMMaterialDesignSpinner (0.2.6)
DEPENDENCIES:
- MaterialDesignSpinner (from `../`)
- MMMaterialDesignSpinner (from `../`)
EXTERNAL SOURCES:
MaterialDesignSpinner:
:path: ../
MMMaterialDesignSpinner:
:path: "../"
SPEC CHECKSUMS:
MaterialDesignSpinner: fdaedc68eb964d52e5faa091692f08fe1fffc905
MMMaterialDesignSpinner: f877769592cc4410c51299a64d6c3934a9fcdab1
COCOAPODS: 0.35.0
PODFILE CHECKSUM: c0dd544008166879b3152865a647d9ab7cf11291
COCOAPODS: 1.2.1
@@ -1 +0,0 @@
../../../../../Pod/Classes/MMMaterialDesignSpinner.h
@@ -0,0 +1,25 @@
{
"name": "MMMaterialDesignSpinner",
"version": "0.2.6",
"summary": "An iOS activity spinner modeled after Google's Material Design spinner",
"description": "I love Google's new indeterminate spinner in the [Material Design guidelines](http://www.google.com/design/spec/components/progress-activity.html#progress-activity-types-of-indicators), and I hadn't found a recreation of it for iOS yet, so I created it using CoreGraphics and CoreAnimation, which makes it super lightweight, smooth, and scalable to large sizes.\n\nSpecial thanks to the following projects and articles that helped me create this:\n* [Google Material Design's Animated Loading Spinner Using HTML, CSS and SVG](http://david.ingledow.co.uk/blog/google-material-designs-animated-loading-spinner-svg-and-css/) for help figuring out exactly what animations were going on.\n* [LLARingSpinnerView](https://github.com/lipka/LLARingSpinnerView) as the base for a custom activity spinner UIView.\n* [center-vfl](https://github.com/evgenyneu/center-vfl) because centering things with Auto Layout's VFL is way harder than it should be to remember.\n* [kylefox / color.m gist](https://gist.github.com/kylefox/1689973) for creating random UIColor values.",
"homepage": "https://github.com/misterwell/MMMaterialDesignSpinner.git",
"license": "MIT",
"authors": {
"Mike Maxwell": "misterwell@gmail.com"
},
"social_media_url": "http://twitter.com/themisterwell",
"platforms": {
"ios": "8.0",
"tvos": "9.0"
},
"source": {
"git": "https://github.com/misterwell/MMMaterialDesignSpinner.git",
"tag": "0.2.6"
},
"source_files": "Pod/Classes",
"frameworks": [
"UIKit",
"CoreGraphics"
]
}
@@ -1,38 +0,0 @@
#
# Be sure to run `pod lib lint MaterialDesignSpinner.podspec' to ensure this is a
# valid spec and remove all comments before submitting the spec.
#
# Any lines starting with a # are optional, but encouraged
#
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
s.name = "MaterialDesignSpinner"
s.version = "0.1.0"
s.summary = "A short description of MaterialDesignSpinner."
s.description = <<-DESC
An optional longer description of MaterialDesignSpinner
* Markdown format.
* Don't worry about the indent, we strip it!
DESC
s.homepage = "https://github.com/<GITHUB_USERNAME>/MaterialDesignSpinner"
# s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
s.license = 'MIT'
s.author = { "Mike Maxwell" => "mmaxwell@vertical.com" }
s.source = { :git => "https://github.com/<GITHUB_USERNAME>/MaterialDesignSpinner.git", :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.platform = :ios, '7.0'
s.requires_arc = true
s.source_files = 'Pod/Classes'
s.resource_bundles = {
'MaterialDesignSpinner' => ['Pod/Assets/*.png']
}
# s.public_header_files = 'Pod/Classes/**/*.h'
s.frameworks = 'UIKit', 'CoreGraphics'
# s.dependency 'AFNetworking', '~> 2.3'
end
+8 -6
View File
@@ -1,14 +1,16 @@
PODS:
- MaterialDesignSpinner (0.1.0)
- MMMaterialDesignSpinner (0.2.6)
DEPENDENCIES:
- MaterialDesignSpinner (from `../`)
- MMMaterialDesignSpinner (from `../`)
EXTERNAL SOURCES:
MaterialDesignSpinner:
:path: ../
MMMaterialDesignSpinner:
:path: "../"
SPEC CHECKSUMS:
MaterialDesignSpinner: fdaedc68eb964d52e5faa091692f08fe1fffc905
MMMaterialDesignSpinner: f877769592cc4410c51299a64d6c3934a9fcdab1
COCOAPODS: 0.35.0
PODFILE CHECKSUM: c0dd544008166879b3152865a647d9ab7cf11291
COCOAPODS: 1.2.1
+747 -1815
View File
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.2.6</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_MMMaterialDesignSpinner : NSObject
@end
@implementation PodsDummy_MMMaterialDesignSpinner
@end
@@ -0,0 +1,12 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
@@ -0,0 +1,18 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
#import "ActivityTracking.h"
#import "MMMaterialDesignSpinner.h"
FOUNDATION_EXPORT double MMMaterialDesignSpinnerVersionNumber;
FOUNDATION_EXPORT const unsigned char MMMaterialDesignSpinnerVersionString[];
@@ -0,0 +1,6 @@
framework module MMMaterialDesignSpinner {
umbrella header "MMMaterialDesignSpinner-umbrella.h"
export *
module * { export * }
}
@@ -0,0 +1,10 @@
CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
OTHER_LDFLAGS = -framework "CoreGraphics" -framework "UIKit"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
@@ -1,5 +0,0 @@
#include "Pods-MaterialDesignSpinner-MaterialDesignSpinner.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/MaterialDesignSpinner" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_LDFLAGS = ${PODS_MATERIALDESIGNSPINNER_MATERIALDESIGNSPINNER_OTHER_LDFLAGS} -ObjC
PODS_ROOT = ${SRCROOT}
@@ -1,5 +0,0 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_MaterialDesignSpinner_MaterialDesignSpinner : NSObject
@end
@implementation PodsDummy_Pods_MaterialDesignSpinner_MaterialDesignSpinner
@end
@@ -1,5 +0,0 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif
#import "Pods-MaterialDesignSpinner-environment.h"
@@ -1 +0,0 @@
PODS_MATERIALDESIGNSPINNER_MATERIALDESIGNSPINNER_OTHER_LDFLAGS = -framework "CoreGraphics" -framework "UIKit"
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
@@ -1,7 +1,7 @@
# Acknowledgements
This application makes use of the following third party libraries:
## MaterialDesignSpinner
## MMMaterialDesignSpinner
Copyright (c) 2014 Mike Maxwell <mmaxwell@vertical.com>
@@ -23,4 +23,4 @@ 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.
Generated by CocoaPods - http://cocoapods.org
Generated by CocoaPods - https://cocoapods.org
@@ -34,14 +34,16 @@ 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.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>MaterialDesignSpinner</string>
<string>MMMaterialDesignSpinner</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - http://cocoapods.org</string>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
@@ -1,14 +0,0 @@
// To check if a library is compiled with CocoaPods you
// can use the `COCOAPODS` macro definition which is
// defined in the xcconfigs so it is available in
// headers also when they are imported in the client
// project.
// MaterialDesignSpinner
#define COCOAPODS_POD_AVAILABLE_MaterialDesignSpinner
#define COCOAPODS_VERSION_MAJOR_MaterialDesignSpinner 0
#define COCOAPODS_VERSION_MINOR_MaterialDesignSpinner 1
#define COCOAPODS_VERSION_PATCH_MaterialDesignSpinner 0
@@ -0,0 +1,99 @@
#!/bin/sh
set -e
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
local source="${BUILT_PRODUCTS_DIR}/$1"
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
elif [ -r "$1" ]; then
local source="$1"
fi
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi
# use filter instead of exclude so missing patterns dont' throw errors
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
binary="${destination}/${basename}.framework/${basename}"
if ! [ -r "$binary" ]; then
binary="${destination}/${basename}"
fi
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
strip_invalid_archs "$binary"
fi
# Resign the code if required by the build settings to avoid unstable apps
code_sign_if_enabled "${destination}/$(basename "$1")"
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
for lib in $swift_runtime_libs; do
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
code_sign_if_enabled "${destination}/${lib}"
done
fi
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
# Get architectures for current file
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
stripped=""
for arch in $archs; do
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
stripped="$stripped $arch"
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/MMMaterialDesignSpinner/MMMaterialDesignSpinner.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/MMMaterialDesignSpinner/MMMaterialDesignSpinner.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi
@@ -1,75 +1,102 @@
#!/bin/sh
set -e
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
XCASSET_FILES=()
case "${TARGETED_DEVICE_FAMILY}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
install_resource()
{
case $1 in
if [[ "$1" = /* ]] ; then
RESOURCE_PATH="$1"
else
RESOURCE_PATH="${PODS_ROOT}/$1"
fi
if [[ ! -e "$RESOURCE_PATH" ]] ; then
cat << EOM
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
EOM
exit 1
fi
case $RESOURCE_PATH in
*.storyboard)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\""
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom"
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\""
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd"
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\""
xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm"
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
;;
/*)
echo "$1"
echo "$1" >> "$RESOURCES_TO_COPY"
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "${PODS_ROOT}/$1"
echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY"
echo "$RESOURCE_PATH"
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
install_resource "${BUILT_PRODUCTS_DIR}/MaterialDesignSpinner.bundle"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [[ "${ACTION}" == "install" ]]; then
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
rm -f "$RESOURCES_TO_COPY"
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ]
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
then
case "${TARGETED_DEVICE_FAMILY}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
while read line; do
if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
@@ -0,0 +1,16 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_MaterialDesignSpinnerVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_MaterialDesignSpinnerVersionString[];
@@ -1,6 +1,9 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_LDFLAGS = -ObjC -l"Pods-MaterialDesignSpinner-MaterialDesignSpinner" -framework "CoreGraphics" -framework "UIKit"
OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
PODS_ROOT = ${SRCROOT}/Pods
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner/MMMaterialDesignSpinner.framework/Headers"
OTHER_LDFLAGS = $(inherited) -framework "MMMaterialDesignSpinner"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
@@ -0,0 +1,6 @@
framework module Pods_MaterialDesignSpinner {
umbrella header "Pods-MaterialDesignSpinner-umbrella.h"
export *
module * { export * }
}
@@ -1,6 +1,9 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_LDFLAGS = -ObjC -l"Pods-MaterialDesignSpinner-MaterialDesignSpinner" -framework "CoreGraphics" -framework "UIKit"
OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
PODS_ROOT = ${SRCROOT}/Pods
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner/MMMaterialDesignSpinner.framework/Headers"
OTHER_LDFLAGS = $(inherited) -framework "MMMaterialDesignSpinner"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
@@ -1,5 +0,0 @@
#include "Pods-Tests-MaterialDesignSpinner.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Build" "${PODS_ROOT}/Headers/Build/MaterialDesignSpinner" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_LDFLAGS = ${PODS_TESTS_MATERIALDESIGNSPINNER_OTHER_LDFLAGS} -ObjC
PODS_ROOT = ${SRCROOT}
@@ -1,5 +0,0 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_Tests_MaterialDesignSpinner : NSObject
@end
@implementation PodsDummy_Pods_Tests_MaterialDesignSpinner
@end
@@ -1,5 +0,0 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif
#import "Pods-Tests-environment.h"
@@ -1 +0,0 @@
PODS_TESTS_MATERIALDESIGNSPINNER_OTHER_LDFLAGS = -framework "CoreGraphics" -framework "UIKit"
+26
View File
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
@@ -1,7 +1,7 @@
# Acknowledgements
This application makes use of the following third party libraries:
## MaterialDesignSpinner
## MMMaterialDesignSpinner
Copyright (c) 2014 Mike Maxwell <mmaxwell@vertical.com>
@@ -23,4 +23,4 @@ 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.
Generated by CocoaPods - http://cocoapods.org
Generated by CocoaPods - https://cocoapods.org
@@ -34,14 +34,16 @@ 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.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>MaterialDesignSpinner</string>
<string>MMMaterialDesignSpinner</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - http://cocoapods.org</string>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
@@ -1,14 +0,0 @@
// To check if a library is compiled with CocoaPods you
// can use the `COCOAPODS` macro definition which is
// defined in the xcconfigs so it is available in
// headers also when they are imported in the client
// project.
// MaterialDesignSpinner
#define COCOAPODS_POD_AVAILABLE_MaterialDesignSpinner
#define COCOAPODS_VERSION_MAJOR_MaterialDesignSpinner 0
#define COCOAPODS_VERSION_MINOR_MaterialDesignSpinner 1
#define COCOAPODS_VERSION_PATCH_MaterialDesignSpinner 0
+99
View File
@@ -0,0 +1,99 @@
#!/bin/sh
set -e
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
local source="${BUILT_PRODUCTS_DIR}/$1"
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
elif [ -r "$1" ]; then
local source="$1"
fi
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi
# use filter instead of exclude so missing patterns dont' throw errors
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
binary="${destination}/${basename}.framework/${basename}"
if ! [ -r "$binary" ]; then
binary="${destination}/${basename}"
fi
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
strip_invalid_archs "$binary"
fi
# Resign the code if required by the build settings to avoid unstable apps
code_sign_if_enabled "${destination}/$(basename "$1")"
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
for lib in $swift_runtime_libs; do
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
code_sign_if_enabled "${destination}/${lib}"
done
fi
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identitiy
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
# Get architectures for current file
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
stripped=""
for arch in $archs; do
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
stripped="$stripped $arch"
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/MMMaterialDesignSpinner/MMMaterialDesignSpinner.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "$BUILT_PRODUCTS_DIR/MMMaterialDesignSpinner/MMMaterialDesignSpinner.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi
@@ -1,75 +1,102 @@
#!/bin/sh
set -e
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
> "$RESOURCES_TO_COPY"
XCASSET_FILES=()
case "${TARGETED_DEVICE_FAMILY}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
3)
TARGET_DEVICE_ARGS="--target-device tv"
;;
4)
TARGET_DEVICE_ARGS="--target-device watch"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
install_resource()
{
case $1 in
if [[ "$1" = /* ]] ; then
RESOURCE_PATH="$1"
else
RESOURCE_PATH="${PODS_ROOT}/$1"
fi
if [[ ! -e "$RESOURCE_PATH" ]] ; then
cat << EOM
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
EOM
exit 1
fi
case $RESOURCE_PATH in
*.storyboard)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.xib)
echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
;;
*.framework)
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
;;
*.xcdatamodel)
echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\""
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom"
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
;;
*.xcdatamodeld)
echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\""
xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd"
echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
;;
*.xcmappingmodel)
echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\""
xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm"
echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
;;
*.xcassets)
;;
/*)
echo "$1"
echo "$1" >> "$RESOURCES_TO_COPY"
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "${PODS_ROOT}/$1"
echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY"
echo "$RESOURCE_PATH"
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
install_resource "${BUILT_PRODUCTS_DIR}/MaterialDesignSpinner.bundle"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [[ "${ACTION}" == "install" ]]; then
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
rm -f "$RESOURCES_TO_COPY"
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ]
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
then
case "${TARGETED_DEVICE_FAMILY}" in
1,2)
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
;;
1)
TARGET_DEVICE_ARGS="--target-device iphone"
;;
2)
TARGET_DEVICE_ARGS="--target-device ipad"
;;
*)
TARGET_DEVICE_ARGS="--target-device mac"
;;
esac
find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
while read line; do
if [[ $line != "${PODS_ROOT}*" ]]; then
XCASSET_FILES+=("$line")
fi
done <<<"$OTHER_XCASSETS"
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
@@ -0,0 +1,16 @@
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
FOUNDATION_EXPORT double Pods_TestsVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_TestsVersionString[];
@@ -1,6 +1,9 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_LDFLAGS = -ObjC -l"Pods-Tests-MaterialDesignSpinner" -framework "CoreGraphics" -framework "UIKit"
OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
PODS_ROOT = ${SRCROOT}/Pods
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner/MMMaterialDesignSpinner.framework/Headers"
OTHER_LDFLAGS = $(inherited) -framework "MMMaterialDesignSpinner"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
@@ -0,0 +1,6 @@
framework module Pods_Tests {
umbrella header "Pods-Tests-umbrella.h"
export *
module * { export * }
}
@@ -1,6 +1,9 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/MaterialDesignSpinner"
OTHER_LDFLAGS = -ObjC -l"Pods-Tests-MaterialDesignSpinner" -framework "CoreGraphics" -framework "UIKit"
OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
PODS_ROOT = ${SRCROOT}/Pods
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner/MMMaterialDesignSpinner.framework/Headers"
OTHER_LDFLAGS = $(inherited) -framework "MMMaterialDesignSpinner"
PODS_BUILD_DIR = $BUILD_DIR
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
+119 -22
View File
@@ -1,16 +1,29 @@
#
# Be sure to run `pod lib lint MaterialDesignSpinner.podspec' to ensure this is a
# valid spec and remove all comments before submitting the spec.
# Be sure to run `pod spec lint MMMaterialDesignSpinner.podspec' to ensure this is a
# valid spec and to remove all comments including this before submitting the spec.
#
# Any lines starting with a # are optional, but encouraged
#
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
# To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html
# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/
#
Pod::Spec.new do |s|
s.name = "MMMaterialDesignSpinner"
s.version = "0.1.0"
s.summary = "An iOS activity spinner modeled after Google's Material Design spinner"
# ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# These will help people to find your library, and whilst it
# can feel like a chore to fill in it's definitely to your advantage. The
# summary should be tweet-length, and the description more in depth.
#
s.name = "MMMaterialDesignSpinner"
s.version = "0.2.4"
s.summary = "An iOS activity spinner modeled after Google's Material Design spinner"
# 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?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = <<-DESC
I love Google's new indeterminate spinner in the [Material Design guidelines](http://www.google.com/design/spec/components/progress-activity.html#progress-activity-types-of-indicators), and I hadn't found a recreation of it for iOS yet, so I created it using CoreGraphics and CoreAnimation, which makes it super lightweight, smooth, and scalable to large sizes.
@@ -20,21 +33,105 @@ Pod::Spec.new do |s|
* [center-vfl](https://github.com/evgenyneu/center-vfl) because centering things with Auto Layout's VFL is way harder than it should be to remember.
* [kylefox / color.m gist](https://gist.github.com/kylefox/1689973) for creating random UIColor values.
DESC
s.homepage = "https://github.com/misterwell/MMMaterialDesignSpinner"
# s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
s.license = 'MIT'
s.author = { "Mike Maxwell" => "misterwell@gmail.com" }
s.source = { :git => "https://github.com/misterwell/MMMaterialDesignSpinner.git", :tag => s.version.to_s }
s.social_media_url = 'https://twitter.com/themisterwell'
s.platform = :ios, '7.0'
s.requires_arc = true
s.homepage = "https://github.com/misterwell/MMMaterialDesignSpinner.git"
# s.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"
s.source_files = 'Pod/Classes'
s.resource_bundles = {
'MaterialDesignSpinner' => ['Pod/Assets/*.png']
}
# s.public_header_files = 'Pod/Classes/**/*.h'
s.frameworks = 'UIKit', 'CoreGraphics'
# ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Licensing your code is important. See http://choosealicense.com for more info.
# CocoaPods will detect a license file if there is a named LICENSE*
# Popular ones are 'MIT', 'BSD' and 'Apache License, Version 2.0'.
#
s.license = "MIT"
# s.license = { :type => "MIT", :file => "FILE_LICENSE" }
# ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Specify the authors of the library, with email addresses. Email addresses
# of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also
# accepts just a name if you'd rather not provide an email address.
#
# Specify a social_media_url where others can refer to, for example a twitter
# profile URL.
#
s.author = { "Mike Maxwell" => "misterwell@gmail.com" }
s.social_media_url = "http://twitter.com/themisterwell"
# ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# If this Pod runs only on iOS or OS X, then specify the platform and
# the deployment target. You can optionally include the target after the platform.
#
s.platform = :ios
# s.platform = :ios, "5.0"
# When using multiple platforms
s.ios.deployment_target = "8.0"
# s.osx.deployment_target = "10.7"
# s.watchos.deployment_target = "2.0"
s.tvos.deployment_target = "9.0"
# ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Specify the location from where the source should be retrieved.
# Supports git, hg, bzr, svn and HTTP.
#
s.source = { :git => "https://github.com/misterwell/MMMaterialDesignSpinner.git", :tag => "0.2.4" }
# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# CocoaPods is smart about how it includes source code. For source files
# giving a folder will include any swift, h, m, mm, c & cpp files.
# For header files it will include any header in the folder.
# Not including the public_header_files will make all headers public.
#
s.source_files = 'Pod/Classes'
# s.public_header_files = "Classes/**/*.h"
# ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# A list of resources included with the Pod. These are copied into the
# target bundle with a build phase script. Anything else will be cleaned.
# You can preserve files from being cleaned, please don't preserve
# non-essential files like tests, examples and documentation.
#
# s.resource = "icon.png"
# s.resources = "Resources/*.png"
# s.preserve_paths = "FilesToSave", "MoreFilesToSave"
# ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Link your library with frameworks, or libraries. Libraries do not include
# the lib prefix of their name.
#
s.frameworks = 'UIKit', 'CoreGraphics'
# ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# If your library depends on compiler flags you can set them in the xcconfig hash
# where they will only apply to your library. If you depend on other Podspecs
# you can include multiple dependencies to ensure it works.
# s.requires_arc = true
# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
# s.dependency "JSONKit", "~> 1.4"
end
@@ -0,0 +1,299 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
75A8F60A1E6C2F8E00C7FF55 /* ActivityTracking.h in Headers */ = {isa = PBXBuildFile; fileRef = 75A8F6091E6C2F8E00C7FF55 /* ActivityTracking.h */; };
9295C9501B253D8900C388EB /* MMMaterialDesignSpinner.h in Headers */ = {isa = PBXBuildFile; fileRef = 9295C94E1B253D8900C388EB /* MMMaterialDesignSpinner.h */; settings = {ATTRIBUTES = (Public, ); }; };
9295C9511B253D8900C388EB /* MMMaterialDesignSpinner.m in Sources */ = {isa = PBXBuildFile; fileRef = 9295C94F1B253D8900C388EB /* MMMaterialDesignSpinner.m */; };
9295C9531B253D9F00C388EB /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 9295C9521B253D9F00C388EB /* Info.plist */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
75A8F6091E6C2F8E00C7FF55 /* ActivityTracking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ActivityTracking.h; path = Pod/Classes/ActivityTracking.h; sourceTree = SOURCE_ROOT; };
9295C9321B253D2D00C388EB /* MMMaterialDesignSpinner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MMMaterialDesignSpinner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
9295C94E1B253D8900C388EB /* MMMaterialDesignSpinner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MMMaterialDesignSpinner.h; path = Pod/Classes/MMMaterialDesignSpinner.h; sourceTree = SOURCE_ROOT; };
9295C94F1B253D8900C388EB /* MMMaterialDesignSpinner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MMMaterialDesignSpinner.m; path = Pod/Classes/MMMaterialDesignSpinner.m; sourceTree = SOURCE_ROOT; };
9295C9521B253D9F00C388EB /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Pod/Info.plist; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
9295C92E1B253D2D00C388EB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
9295C9281B253D2D00C388EB = {
isa = PBXGroup;
children = (
9295C9341B253D2D00C388EB /* MMMaterialDesignSpinner */,
9295C9331B253D2D00C388EB /* Products */,
);
sourceTree = "<group>";
};
9295C9331B253D2D00C388EB /* Products */ = {
isa = PBXGroup;
children = (
9295C9321B253D2D00C388EB /* MMMaterialDesignSpinner.framework */,
);
name = Products;
sourceTree = "<group>";
};
9295C9341B253D2D00C388EB /* MMMaterialDesignSpinner */ = {
isa = PBXGroup;
children = (
9295C94E1B253D8900C388EB /* MMMaterialDesignSpinner.h */,
9295C94F1B253D8900C388EB /* MMMaterialDesignSpinner.m */,
75A8F6091E6C2F8E00C7FF55 /* ActivityTracking.h */,
9295C9351B253D2D00C388EB /* Supporting Files */,
);
path = MMMaterialDesignSpinner;
sourceTree = "<group>";
};
9295C9351B253D2D00C388EB /* Supporting Files */ = {
isa = PBXGroup;
children = (
9295C9521B253D9F00C388EB /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
9295C92F1B253D2D00C388EB /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
75A8F60A1E6C2F8E00C7FF55 /* ActivityTracking.h in Headers */,
9295C9501B253D8900C388EB /* MMMaterialDesignSpinner.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
9295C9311B253D2D00C388EB /* MMMaterialDesignSpinner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9295C9481B253D2D00C388EB /* Build configuration list for PBXNativeTarget "MMMaterialDesignSpinner" */;
buildPhases = (
9295C92D1B253D2D00C388EB /* Sources */,
9295C92E1B253D2D00C388EB /* Frameworks */,
9295C92F1B253D2D00C388EB /* Headers */,
9295C9301B253D2D00C388EB /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = MMMaterialDesignSpinner;
productName = MMMaterialDesignSpinner;
productReference = 9295C9321B253D2D00C388EB /* MMMaterialDesignSpinner.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
9295C9291B253D2D00C388EB /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0630;
ORGANIZATIONNAME = misterwell;
TargetAttributes = {
9295C9311B253D2D00C388EB = {
CreatedOnToolsVersion = 6.3.1;
};
};
};
buildConfigurationList = 9295C92C1B253D2D00C388EB /* Build configuration list for PBXProject "MMMaterialDesignSpinner" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 9295C9281B253D2D00C388EB;
productRefGroup = 9295C9331B253D2D00C388EB /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
9295C9311B253D2D00C388EB /* MMMaterialDesignSpinner */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
9295C9301B253D2D00C388EB /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9295C9531B253D9F00C388EB /* Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
9295C92D1B253D2D00C388EB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9295C9511B253D8900C388EB /* MMMaterialDesignSpinner.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
9295C9461B253D2D00C388EB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
9295C9471B253D2D00C388EB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
9295C9491B253D2D00C388EB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "$(SRCROOT)/Pod/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
};
9295C94A1B253D2D00C388EB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "$(SRCROOT)/Pod/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
9295C92C1B253D2D00C388EB /* Build configuration list for PBXProject "MMMaterialDesignSpinner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9295C9461B253D2D00C388EB /* Debug */,
9295C9471B253D2D00C388EB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9295C9481B253D2D00C388EB /* Build configuration list for PBXNativeTarget "MMMaterialDesignSpinner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9295C9491B253D2D00C388EB /* Debug */,
9295C94A1B253D2D00C388EB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 9295C9291B253D2D00C388EB /* Project object */;
}
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:MMMaterialDesignSpinner.xcodeproj">
</FileRef>
</Workspace>
@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0630"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9295C9311B253D2D00C388EB"
BuildableName = "MMMaterialDesignSpinner.framework"
BlueprintName = "MMMaterialDesignSpinner"
ReferencedContainer = "container:MMMaterialDesignSpinner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9295C93C1B253D2D00C388EB"
BuildableName = "MMMaterialDesignSpinnerTests.xctest"
BlueprintName = "MMMaterialDesignSpinnerTests"
ReferencedContainer = "container:MMMaterialDesignSpinner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9295C93C1B253D2D00C388EB"
BuildableName = "MMMaterialDesignSpinnerTests.xctest"
BlueprintName = "MMMaterialDesignSpinnerTests"
ReferencedContainer = "container:MMMaterialDesignSpinner.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9295C9311B253D2D00C388EB"
BuildableName = "MMMaterialDesignSpinner.framework"
BlueprintName = "MMMaterialDesignSpinner"
ReferencedContainer = "container:MMMaterialDesignSpinner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9295C9311B253D2D00C388EB"
BuildableName = "MMMaterialDesignSpinner.framework"
BlueprintName = "MMMaterialDesignSpinner"
ReferencedContainer = "container:MMMaterialDesignSpinner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9295C9311B253D2D00C388EB"
BuildableName = "MMMaterialDesignSpinner.framework"
BlueprintName = "MMMaterialDesignSpinner"
ReferencedContainer = "container:MMMaterialDesignSpinner.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
+56
View File
@@ -0,0 +1,56 @@
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
#import <UIKit/UIKit.h>
@protocol ActivityTracking
// default is UIActivityIndicatorViewStyleWhite
@property(nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle;
// default is YES. calls -setHidden when animating gets set to NO
@property(nonatomic) BOOL hidesWhenStopped;
@property (nullable, readwrite, nonatomic, strong) UIColor *color NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
/** Sets the line width of the spinner's circle. */
@property (nonatomic) CGFloat lineWidth;
/** Sets the line cap of the spinner's circle. */
@property (nonatomic, strong) NSString * _Nullable lineCap;
/** Specifies the timing function to use for the control's animation. Defaults to kCAMediaTimingFunctionEaseInEaseOut */
@property (nullable, nonatomic, strong) CAMediaTimingFunction *timingFunction;
/** Property indicating the duration of the animation, default is 1.5s. Should be set prior to -[startAnimating] */
@property (nonatomic, readwrite) NSTimeInterval duration;
/**
* Convenience function for starting & stopping animation with a boolean variable instead of explicit
* method calls.
*
* @param animate true to start animating, false to stop animating.
@note This method simply calls the startAnimating or stopAnimating methods based on the value of the animate parameter.
*/
- (void)setAnimating:(BOOL)animate;
- (void)startAnimating;
- (void)stopAnimating;
- (BOOL)isAnimating;
@end
+11 -7
View File
@@ -7,15 +7,19 @@
//
#import <UIKit/UIKit.h>
#import "ActivityTracking.h"
@interface MMMaterialDesignSpinner : UIView
//! Project version number for MMMaterialDesignSpinner.
FOUNDATION_EXPORT double MMMaterialDesignSpinnerVersionNumber;
@property (nonatomic) CGFloat lineWidth;
@property (nonatomic) BOOL hidesWhenStopped;
@property (nonatomic, strong) CAMediaTimingFunction *timingFunction;
@property (nonatomic, readonly) BOOL isAnimating;
//! Project version string for MMMaterialDesignSpinner.
FOUNDATION_EXPORT const unsigned char MMMaterialDesignSpinnerVersionString[];
- (void)startAnimating;
- (void)stopAnimating;
// In this header, you should import all the public headers of your framework using statements like #import <Cent/PublicHeader.h>
/**
* A control similar to iOS' UIActivityIndicatorView modeled after Google's Material Design Activity spinner.
*/
@interface MMMaterialDesignSpinner : UIView <ActivityTracking>
@end
+46 -8
View File
@@ -19,6 +19,11 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
@implementation MMMaterialDesignSpinner
@synthesize progressLayer=_progressLayer;
@synthesize hidesWhenStopped=_hidesWhenStopped;
@synthesize activityIndicatorViewStyle=_activityIndicatorViewStyle;
@synthesize color=_color;
@synthesize timingFunction=_timingFunction;
@synthesize duration=_duration;
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
@@ -34,13 +39,21 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
return self;
}
- (void)awakeFromNib
{
[super awakeFromNib];
[self initialize];
}
- (void)initialize {
self.duration = 1.5f;
_timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.layer addSublayer:self.progressLayer];
// See comment in resetAnimations on why this notification is used.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resetAnimations) name:UIApplicationDidBecomeActiveNotification object:nil];
[self invalidateIntrinsicContentSize];
}
- (void)dealloc
@@ -52,9 +65,15 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
[super layoutSubviews];
self.progressLayer.frame = CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds));
[self invalidateIntrinsicContentSize];
[self updatePath];
}
- (CGSize)intrinsicContentSize
{
return CGSizeMake(self.bounds.size.width, self.bounds.size.height);
}
- (void)tintColorDidChange {
[super tintColorDidChange];
@@ -69,28 +88,35 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
}
}
- (void)setAnimating:(BOOL)animate {
(animate ? [self startAnimating] : [self stopAnimating]);
}
- (void)startAnimating {
if (self.isAnimating)
return;
CABasicAnimation *animation = [CABasicAnimation animation];
animation.keyPath = @"transform.rotation";
animation.duration = 4.f;
animation.duration = self.duration / 0.375f;
animation.fromValue = @(0.f);
animation.toValue = @(2 * M_PI);
animation.repeatCount = INFINITY;
animation.removedOnCompletion = NO;
[self.progressLayer addAnimation:animation forKey:kMMRingRotationAnimationKey];
CABasicAnimation *headAnimation = [CABasicAnimation animation];
headAnimation.keyPath = @"strokeStart";
headAnimation.duration = 1.f;
headAnimation.duration = self.duration / 1.5f;
headAnimation.fromValue = @(0.f);
headAnimation.toValue = @(0.25f);
headAnimation.timingFunction = self.timingFunction;
CABasicAnimation *tailAnimation = [CABasicAnimation animation];
tailAnimation.keyPath = @"strokeEnd";
tailAnimation.duration = 1.f;
tailAnimation.duration = self.duration / 1.5f;
tailAnimation.fromValue = @(0.f);
tailAnimation.toValue = @(1.f);
tailAnimation.timingFunction = self.timingFunction;
@@ -98,24 +124,25 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
CABasicAnimation *endHeadAnimation = [CABasicAnimation animation];
endHeadAnimation.keyPath = @"strokeStart";
endHeadAnimation.beginTime = 1.f;
endHeadAnimation.duration = 0.5f;
endHeadAnimation.beginTime = self.duration / 1.5f;
endHeadAnimation.duration = self.duration / 3.0f;
endHeadAnimation.fromValue = @(0.25f);
endHeadAnimation.toValue = @(1.f);
endHeadAnimation.timingFunction = self.timingFunction;
CABasicAnimation *endTailAnimation = [CABasicAnimation animation];
endTailAnimation.keyPath = @"strokeEnd";
endTailAnimation.beginTime = 1.f;
endTailAnimation.duration = 0.5f;
endTailAnimation.beginTime = self.duration / 1.5f;
endTailAnimation.duration = self.duration / 3.0f;
endTailAnimation.fromValue = @(1.f);
endTailAnimation.toValue = @(1.f);
endTailAnimation.timingFunction = self.timingFunction;
CAAnimationGroup *animations = [CAAnimationGroup animation];
[animations setDuration:1.5f];
[animations setDuration:self.duration];
[animations setAnimations:@[headAnimation, tailAnimation, endHeadAnimation, endTailAnimation]];
animations.repeatCount = INFINITY;
animations.removedOnCompletion = NO;
[self.progressLayer addAnimation:animations forKey:kMMRingStrokeAnimationKey];
@@ -173,11 +200,22 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
return self.progressLayer.lineWidth;
}
- (NSString *)lineCap
{
return self.progressLayer.lineCap;
}
- (void)setLineWidth:(CGFloat)lineWidth {
self.progressLayer.lineWidth = lineWidth;
[self updatePath];
}
- (void)setLineCap:(NSString *)lineCap
{
self.progressLayer.lineCap = lineCap;
[self updatePath];
}
- (void)setHidesWhenStopped:(BOOL)hidesWhenStopped {
_hidesWhenStopped = hidesWhenStopped;
self.hidden = !self.isAnimating && hidesWhenStopped;
+26
View File
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>misterwell.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.2.6</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
+10
View File
@@ -4,6 +4,9 @@
[![Version](https://img.shields.io/cocoapods/v/MMMaterialDesignSpinner.svg?style=flat)](http://cocoadocs.org/docsets/MMMaterialDesignSpinner)
[![License](https://img.shields.io/cocoapods/l/MMMaterialDesignSpinner.svg?style=flat)](http://cocoadocs.org/docsets/MMMaterialDesignSpinner)
[![Platform](https://img.shields.io/cocoapods/p/MMMaterialDesignSpinner.svg?style=flat)](http://cocoadocs.org/docsets/MMMaterialDesignSpinner)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
![Demo](https://raw.githubusercontent.com/misterwell/MMMaterialDesignSpinner/master/Demo.gif "Pod Demo")
## Usage
@@ -26,7 +29,10 @@ spinnerView.tintColor = [UIColor redColor];
// Start & stop animations
[spinnerView startAnimating];
[spinnerView stopAnimating];
```
Also Support Xib & StoryBoard
The `lineWidth` and `tintColor` properties can even be set after animating has been started, which you can observe in the included example project.
@@ -40,6 +46,10 @@ it, simply add the following line to your Podfile:
pod "MMMaterialDesignSpinner"
MaterialDesignSpinner is also [Carthage](https://github.com/Carthage/Carthage) compatible, add the following line to your Cartfile:
github "misterwell/MMMaterialDesignSpinner"
## Author
Mike Maxwell, mmaxwell@vertical.com