17 Commits

Author SHA1 Message Date
Mike Maxwell 229e5c202d Merge branch 'feature/set-percent-complete'
Accidentally committed to feature branch, pulling back into master.
2017-07-22 17:55:05 -07:00
Mike Maxwell 5b48c1d9e2 Project updates for Xcode 8.3.3 2017-07-22 17:54:01 -07:00
Mike Maxwell 0082dd2343 Fixes #12 by improving layout of example for landscape mode 2017-07-22 17:43:42 -07:00
Mike Maxwell 49dbcbf4c2 Merge pull request #19 from misterwell/feature/set-percent-complete
Feature/set percent complete
2017-07-22 17:33:31 -07:00
Mike Maxwell cb689478a5 Pod update on example project 2017-07-22 17:28:58 -07:00
Mike Maxwell f1424862a9 #11: Adding support for manually setting the percentComplete, which can be used to implement a custom pull-to-refresh control for a tableview 2017-07-22 17:27:11 -07:00
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
51 changed files with 4161 additions and 145 deletions
+5 -4
View File
@@ -3,14 +3,15 @@
# * https://github.com/supermarin/xcpretty#usage
language: objective-c
osx_image: xcode8.3
cache: cocoapods
podfile: Example/Podfile
before_install:
- rvm install 2.2.2
- rvm use 2.2.2
- gem install cocoapods
- 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
@@ -23,6 +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 */; };
DB00E2101F23C12C00898B82 /* MMTableViewRefreshDemoController.m in Sources */ = {isa = PBXBuildFile; fileRef = DB00E20F1F23C12C00898B82 /* MMTableViewRefreshDemoController.m */; };
DB7295681BC9B25B009FD543 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DB7295661BC9B25B009FD543 /* Launch Screen.storyboard */; };
/* End PBXBuildFile section */
@@ -65,6 +66,8 @@
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>"; };
DB00E20E1F23C12C00898B82 /* MMTableViewRefreshDemoController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MMTableViewRefreshDemoController.h; sourceTree = "<group>"; };
DB00E20F1F23C12C00898B82 /* MMTableViewRefreshDemoController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MMTableViewRefreshDemoController.m; 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 */
@@ -140,6 +143,8 @@
6003F5A6195388D20070C39A /* MMViewController.m */,
6003F5A8195388D20070C39A /* Images.xcassets */,
6003F594195388D20070C39A /* Supporting Files */,
DB00E20E1F23C12C00898B82 /* MMTableViewRefreshDemoController.h */,
DB00E20F1F23C12C00898B82 /* MMTableViewRefreshDemoController.m */,
);
path = MaterialDesignSpinner;
sourceTree = "<group>";
@@ -202,12 +207,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 */,
56DD4FE2938A7DD1B38DED1E /* Embed Pods Frameworks */,
2A98E41CC76E9893897F26B2 /* [CP] Copy Pods Resources */,
56DD4FE2938A7DD1B38DED1E /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -222,12 +227,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 */,
B4F78B6D228E5EE07CDFA45A /* Embed Pods Frameworks */,
98136B84922DE7AA6608D78E /* [CP] Copy Pods Resources */,
B4F78B6D228E5EE07CDFA45A /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -246,7 +251,7 @@
isa = PBXProject;
attributes = {
CLASSPREFIX = MM;
LastUpgradeCheck = 0510;
LastUpgradeCheck = 0830;
ORGANIZATIONNAME = "Mike Maxwell";
TargetAttributes = {
6003F5AD195388D20070C39A = {
@@ -296,14 +301,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;
@@ -311,14 +316,14 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MaterialDesignSpinner/Pods-MaterialDesignSpinner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
56DD4FE2938A7DD1B38DED1E /* Embed Pods Frameworks */ = {
56DD4FE2938A7DD1B38DED1E /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Embed Pods Frameworks";
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -326,29 +331,29 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MaterialDesignSpinner/Pods-MaterialDesignSpinner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
731C5D1EBA5794E26124D6F4 /* Check Pods Manifest.lock */ = {
731C5D1EBA5794E26124D6F4 /* [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;
};
98136B84922DE7AA6608D78E /* Copy Pods Resources */ = {
98136B84922DE7AA6608D78E /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy Pods Resources";
name = "[CP] Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -356,29 +361,29 @@
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 /* Embed Pods Frameworks */ = {
B4F78B6D228E5EE07CDFA45A /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Embed Pods Frameworks";
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@@ -395,6 +400,7 @@
files = (
6003F59E195388D20070C39A /* MMAppDelegate.m in Sources */,
6003F5A7195388D20070C39A /* MMViewController.m in Sources */,
DB00E2101F23C12C00898B82 /* MMTableViewRefreshDemoController.m in Sources */,
6003F59A195388D20070C39A /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -466,12 +472,18 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = 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",
@@ -484,7 +496,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 = 10.3;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -504,19 +516,24 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
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 = 7.1;
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
@@ -531,7 +548,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "MaterialDesignSpinner/MaterialDesignSpinner-Prefix.pch";
INFOPLIST_FILE = "MaterialDesignSpinner/MaterialDesignSpinner-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
@@ -545,7 +562,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "MaterialDesignSpinner/MaterialDesignSpinner-Prefix.pch";
INFOPLIST_FILE = "MaterialDesignSpinner/MaterialDesignSpinner-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
@@ -568,6 +585,7 @@
"$(inherited)",
);
INFOPLIST_FILE = "Tests/Tests-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
@@ -587,6 +605,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch";
INFOPLIST_FILE = "Tests/Tests-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUNDLE_LOADER)";
WRAPPER_EXTENSION = xctest;
File diff suppressed because it is too large Load Diff
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0600"
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -23,10 +23,10 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
@@ -48,17 +48,21 @@
ReferencedContainer = "container:MaterialDesignSpinner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable>
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "6003F589195388D20070C39A"
@@ -71,12 +75,13 @@
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<BuildableProductRunnable>
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "6003F589195388D20070C39A"
@@ -1,13 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vXZ-lx-hvc">
<?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="uXx-W6-c1L">
<device id="retina4_7" orientation="landscape">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
<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="Constraints to layout margins" minToolsVersion="6.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<!--Navigation Controller-->
<scene sceneID="cR8-to-byt">
<objects>
<navigationController id="uXx-W6-c1L" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="YyW-hz-Jes">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="vXZ-lx-hvc" kind="relationship" relationship="rootViewController" id="Hc9-Jl-q8w"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="sL4-ez-7Rp" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-284" y="438"/>
</scene>
<!--Spinner Demo-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController id="vXZ-lx-hvc" customClass="MMViewController" sceneMemberID="viewController">
@@ -16,76 +36,141 @@
<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="600" height="600"/>
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HW3-rr-Akw" customClass="MMMaterialDesignSpinner">
<rect key="frame" x="200" y="200" width="200" height="200"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<rect key="frame" x="282.5" y="112" width="102" height="102"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" priority="750" constant="150" id="V9j-yU-cYh"/>
<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="253" y="420" width="94" height="30"/>
<state key="normal" title="Change Color"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Xg1-YZ-sWL">
<rect key="frame" x="245.5" y="72" width="176" height="30"/>
<state key="normal" title="Table View Refresh Demo"/>
<connections>
<action selector="changeColorButtonTouched:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="zUc-r8-e9P"/>
<segue destination="yGj-0q-1O8" kind="show" id="TDu-UG-S9b"/>
</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="235" y="458" 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="180" y="496" width="240" height="30"/>
<stackView opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" axis="vertical" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="C5g-gW-XGY">
<rect key="frame" x="20" y="224" width="627" height="131"/>
<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"/>
<stackView opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="SCW-8b-chC">
<rect key="frame" x="245.5" y="0.0" width="136" height="20.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Animating" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VOX-Dm-Moq">
<rect key="frame" x="0.0" y="0.0" width="77" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="lzS-2t-fnC">
<rect key="frame" x="87" y="0.0" width="51" height="20.5"/>
<connections>
<action selector="animateSwitchValueDidChange:" destination="vXZ-lx-hvc" eventType="valueChanged" id="Eec-rx-TlF"/>
</connections>
</switch>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="P1z-mM-mIQ">
<rect key="frame" x="193" y="30.5" width="241.5" height="20.5"/>
<subviews>
<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="0.0" width="65.5" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<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="73.5" y="0.0" width="170" height="21.5"/>
<constraints>
<constraint firstAttribute="width" constant="166" id="oZZ-eP-B6N"/>
</constraints>
<connections>
<action selector="sliderValueChanged:" destination="vXZ-lx-hvc" eventType="valueChanged" id="zuh-gN-Azo"/>
<action selector="sliderValueUpdated:" destination="vXZ-lx-hvc" eventType="touchUpOutside" id="bci-e6-9Ia"/>
<action selector="sliderValueUpdated:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="cfC-0R-vgj"/>
</connections>
</slider>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" distribution="fillEqually" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="vgU-Kg-LIP">
<rect key="frame" x="0.0" y="61" width="627" height="30"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bxJ-ep-Qc5">
<rect key="frame" x="0.0" y="0.0" width="308.5" 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="318.5" y="0.0" width="308.5" 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>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" distribution="fillEqually" alignment="center" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="FhH-4Y-9FI">
<rect key="frame" x="0.0" y="101" width="627" height="30"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="E1O-wf-Kab">
<rect key="frame" x="0.0" y="0.0" width="202.5" 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="voE-WH-qy2">
<rect key="frame" x="212.5" y="0.0" width="202" 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="MUs-BJ-ux5">
<rect key="frame" x="424.5" y="0.0" width="202.5" 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>
<constraints>
<constraint firstAttribute="width" constant="166" id="oZZ-eP-B6N"/>
<constraint firstItem="E1O-wf-Kab" firstAttribute="height" secondItem="voE-WH-qy2" secondAttribute="height" id="1NR-sA-TDH"/>
<constraint firstItem="voE-WH-qy2" firstAttribute="height" secondItem="MUs-BJ-ux5" secondAttribute="height" id="oiK-HF-nAp"/>
</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="4" width="66" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</stackView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<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"/>
<constraint firstAttribute="trailing" secondItem="vgU-Kg-LIP" secondAttribute="trailing" id="DFc-hR-NCb"/>
<constraint firstItem="FhH-4Y-9FI" firstAttribute="leading" secondItem="C5g-gW-XGY" secondAttribute="leading" id="LVA-gI-czP"/>
<constraint firstItem="vgU-Kg-LIP" firstAttribute="leading" secondItem="C5g-gW-XGY" secondAttribute="leading" id="aBx-ZZ-ZM0"/>
<constraint firstAttribute="trailing" secondItem="FhH-4Y-9FI" secondAttribute="trailing" id="ozq-K9-OuC"/>
</constraints>
</view>
</stackView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<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="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="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="HW3-rr-Akw" firstAttribute="centerY" secondItem="kh9-bI-dsS" secondAttribute="centerY" id="c5R-S9-N1n"/>
<constraint firstAttribute="trailingMargin" secondItem="C5g-gW-XGY" secondAttribute="trailing" id="3Jn-tn-6Ed"/>
<constraint firstItem="HW3-rr-Akw" firstAttribute="top" relation="greaterThanOrEqual" secondItem="Xg1-YZ-sWL" secondAttribute="bottom" constant="10" id="BlP-I8-SV3"/>
<constraint firstItem="C5g-gW-XGY" firstAttribute="top" relation="greaterThanOrEqual" secondItem="HW3-rr-Akw" secondAttribute="bottom" constant="10" id="IFo-tU-Z4e"/>
<constraint firstItem="2fi-mo-0CV" firstAttribute="top" secondItem="C5g-gW-XGY" secondAttribute="bottom" constant="20" id="Ta7-df-tHk"/>
<constraint firstItem="Xg1-YZ-sWL" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="Yrm-XY-gDC"/>
<constraint firstItem="HW3-rr-Akw" firstAttribute="centerY" secondItem="kh9-bI-dsS" secondAttribute="centerY" priority="750" id="c5R-S9-N1n"/>
<constraint firstItem="HW3-rr-Akw" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="lAp-IZ-ygd"/>
<constraint firstItem="P6d-eP-pjF" firstAttribute="top" secondItem="Umg-oT-Dv1" secondAttribute="bottom" constant="8" id="xcT-AQ-2QR"/>
<constraint firstItem="C5g-gW-XGY" firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leadingMargin" id="wMv-Sk-HgB"/>
<constraint firstItem="Xg1-YZ-sWL" firstAttribute="top" secondItem="jyV-Pf-zRb" secondAttribute="bottom" constant="8" id="yyW-2f-WD3"/>
</constraints>
</view>
<navigationItem key="navigationItem" title="Spinner Demo" id="wrV-lz-o3P"/>
<connections>
<outlet property="durationSlider" destination="BCa-2B-PxA" id="zNN-IT-kOe"/>
<outlet property="sliderControl" destination="BCa-2B-PxA" id="bsI-u7-2az"/>
<outlet property="sliderLabel" destination="oZk-x6-Cbo" id="MYj-LJ-HFP"/>
<outlet property="spinnerView" destination="HW3-rr-Akw" id="mkj-d2-eQE"/>
</connections>
</viewController>
@@ -93,5 +178,72 @@
</objects>
<point key="canvasLocation" x="571" y="438"/>
</scene>
<!--Refresh Control Demo-->
<scene sceneID="bCi-Vg-nOI">
<objects>
<tableViewController title="Refresh Control Demo" id="yGj-0q-1O8" customClass="MMTableViewRefreshDemoController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="r6U-t1-zsb">
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="DemoCell" textLabel="LDa-4Q-xy6" style="IBUITableViewCellStyleDefault" id="iE3-Vo-weT">
<rect key="frame" x="0.0" y="28" width="667" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="iE3-Vo-weT" id="ofK-in-Xv7">
<rect key="frame" x="0.0" y="0.0" width="667" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="LDa-4Q-xy6">
<rect key="frame" x="15" y="0.0" width="637" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="yGj-0q-1O8" id="K73-Ca-CEP"/>
<outlet property="delegate" destination="yGj-0q-1O8" id="MWw-SE-Uu8"/>
</connections>
</tableView>
<refreshControl key="refreshControl" opaque="NO" multipleTouchEnabled="YES" contentMode="center" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" id="YhU-Sc-EQ1">
<autoresizingMask key="autoresizingMask"/>
<connections>
<action selector="refresh:" destination="yGj-0q-1O8" eventType="valueChanged" id="qm9-1e-BNj"/>
</connections>
</refreshControl>
<connections>
<outlet property="refreshControlSpinner" destination="UeA-xM-1hl" id="xJP-78-iR4"/>
<outlet property="refreshControlView" destination="sdb-By-mrr" id="J7b-Av-XIg"/>
</connections>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="XZv-D0-9pv" userLabel="First Responder" sceneMemberID="firstResponder"/>
<view contentMode="scaleToFill" id="sdb-By-mrr">
<rect key="frame" x="0.0" y="0.0" width="371" height="64"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UeA-xM-1hl" customClass="MMMaterialDesignSpinner">
<rect key="frame" x="161" y="8" width="48" height="48"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" secondItem="UeA-xM-1hl" secondAttribute="height" multiplier="1:1" id="H9P-Qm-iki"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="UeA-xM-1hl" firstAttribute="centerX" secondItem="sdb-By-mrr" secondAttribute="centerX" id="KZ0-gV-j5s"/>
<constraint firstItem="UeA-xM-1hl" firstAttribute="top" secondItem="sdb-By-mrr" secondAttribute="top" constant="8" id="TCD-Lq-Dr9"/>
<constraint firstItem="UeA-xM-1hl" firstAttribute="width" secondItem="UeA-xM-1hl" secondAttribute="height" multiplier="1:1" id="c6l-Tu-yp1"/>
<constraint firstAttribute="bottom" secondItem="UeA-xM-1hl" secondAttribute="bottom" constant="8" id="zg7-Ie-CuP"/>
</constraints>
</view>
</objects>
<point key="canvasLocation" x="1415" y="438"/>
</scene>
</scenes>
</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,12 @@
"idiom" : "ipad",
"filename" : "Icon-76@2x.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Icon-60@3x copy.png",
"scale" : "2x"
}
],
"info" : {
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

@@ -0,0 +1,13 @@
//
// MMTableViewRefreshDemoController.h
// MaterialDesignSpinner
//
// Created by Mike Maxwell on 7/22/17.
// Copyright © 2017 Mike Maxwell. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface MMTableViewRefreshDemoController : UITableViewController
@end
@@ -0,0 +1,68 @@
//
// MMTableViewRefreshDemoController.m
// MaterialDesignSpinner
//
// Created by Mike Maxwell on 7/22/17.
// Copyright © 2017 Mike Maxwell. All rights reserved.
//
#import "MMTableViewRefreshDemoController.h"
#import "UIRefreshControl+MaterialDesignSpinner.h"
#import "MMMaterialDesignSpinner.h"
@interface MMTableViewRefreshDemoController ()
@property (strong, nonatomic) IBOutlet UIView *refreshControlView;
@property (weak, nonatomic) IBOutlet MMMaterialDesignSpinner *refreshControlSpinner;
@end
@implementation MMTableViewRefreshDemoController
- (void)viewDidLoad {
[super viewDidLoad];
self.refreshControlView.frame = self.refreshControl.bounds;
[self.refreshControl addSubview:self.refreshControlView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 4;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DemoCell" forIndexPath:indexPath];
// Configure the cell...
cell.textLabel.text = [NSString stringWithFormat:@"Demo Cell #%ld", (long)indexPath.row];
return cell;
}
- (IBAction)refresh:(id)sender {
[self.refreshControlSpinner setAnimating:YES];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.refreshControlSpinner setAnimating:NO];
[self.refreshControl endRefreshing];
});
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat yOffset = scrollView.contentOffset.y + scrollView.contentInset.top;
if (yOffset < 0 && !self.refreshControlSpinner.isAnimating) {
float percent = -yOffset / (2.0*self.refreshControl.bounds.size.height);
self.refreshControlSpinner.percentComplete = percent;
}
}
@end
@@ -12,7 +12,10 @@
@interface MMViewController ()
@property (nonatomic, strong) IBOutlet MMMaterialDesignSpinner *spinnerView;
@property (weak, nonatomic) IBOutlet UISlider *durationSlider;
@property (weak, nonatomic) IBOutlet UISlider *sliderControl;
@property (weak, nonatomic) IBOutlet UILabel *sliderLabel;
@property (nonatomic, assign) BOOL animate;
@end
@implementation MMViewController
@@ -30,14 +33,43 @@
}
- (IBAction)changeLineWidthButtonTouched:(id)sender {
self.spinnerView.lineWidth = (rand() % 10) / 2.f;
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)sliderValueUpdated:(id)sender {
if (self.animate) {
[self.spinnerView stopAnimating];
self.spinnerView.duration = self.sliderControl.value;
[self.spinnerView startAnimating];
}
}
- (IBAction)sliderValueChanged:(id)sender {
if (!self.animate) {
self.spinnerView.percentComplete = [self sliderPercentValue];
}
}
- (IBAction)squareCapButtonPressed:(id)sender {
self.spinnerView.lineCap = kCALineCapSquare;
}
- (IBAction)rouncCapButtonPressed:(id)sender {
self.spinnerView.lineCap = kCALineCapRound;
}
- (IBAction)buttCapButtonPressed:(id)sender {
self.spinnerView.lineCap = kCALineCapButt;
}
- (IBAction)animateSwitchValueDidChange:(UISwitch *)sender {
self.animate = sender.on;
[self.spinnerView setAnimating:self.animate];
self.sliderLabel.text = (self.animate
? @"Duration"
: @"Percent Complete");
self.spinnerView.percentComplete = [self sliderPercentValue];
}
#pragma mark Helper methods
@@ -49,4 +81,8 @@
return [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
}
- (float)sliderPercentValue {
return self.sliderControl.value / self.sliderControl.maximumValue;
}
@end
@@ -9,7 +9,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
+2 -2
View File
@@ -1,10 +1,10 @@
platform :ios, '8.0'
use_frameworks!
target 'MaterialDesignSpinner', :exclusive => true do
target 'MaterialDesignSpinner' do
pod "MMMaterialDesignSpinner", :path => "../"
end
target 'Tests', :exclusive => true do
target 'Tests' do
pod "MMMaterialDesignSpinner", :path => "../"
end
+16
View File
@@ -0,0 +1,16 @@
PODS:
- MMMaterialDesignSpinner (0.2.4)
DEPENDENCIES:
- MMMaterialDesignSpinner (from `../`)
EXTERNAL SOURCES:
MMMaterialDesignSpinner:
:path: "../"
SPEC CHECKSUMS:
MMMaterialDesignSpinner: 66a80c1c7a745e65e1fefeff613a6510ddc1fe54
PODFILE CHECKSUM: c0dd544008166879b3152865a647d9ab7cf11291
COCOAPODS: 1.2.1
@@ -0,0 +1,25 @@
{
"name": "MMMaterialDesignSpinner",
"version": "0.2.4",
"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.4"
},
"source_files": "Pod/Classes",
"frameworks": [
"UIKit",
"CoreGraphics"
]
}
+16
View File
@@ -0,0 +1,16 @@
PODS:
- MMMaterialDesignSpinner (0.2.4)
DEPENDENCIES:
- MMMaterialDesignSpinner (from `../`)
EXTERNAL SOURCES:
MMMaterialDesignSpinner:
:path: "../"
SPEC CHECKSUMS:
MMMaterialDesignSpinner: 66a80c1c7a745e65e1fefeff613a6510ddc1fe54
PODFILE CHECKSUM: c0dd544008166879b3152865a647d9ab7cf11291
COCOAPODS: 1.2.1
+751
View File
@@ -0,0 +1,751 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
1ECDBBB9B8127400D9F426A0E7C8702D /* UIRefreshControl+MaterialDesignSpinner.h in Headers */ = {isa = PBXBuildFile; fileRef = 65A224C4A2AC187B65ADBE3121D42CE8 /* UIRefreshControl+MaterialDesignSpinner.h */; settings = {ATTRIBUTES = (Public, ); }; };
2956E8905120D070E39A294245D6D5E9 /* MMMaterialDesignSpinner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CC98D90268C2CC07BB35A85564383D /* MMMaterialDesignSpinner-dummy.m */; };
2E6461465B4C8D6F88F5E7869D109CCB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE59B0D97841C2542CA3D20540685C26 /* Foundation.framework */; };
3B320A7E585B9CAFB5962FE430562B05 /* Pods-MaterialDesignSpinner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 69767E81EEF74DA03C18B26CFA2A1E83 /* Pods-MaterialDesignSpinner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
513A06E050B07E1E97124D57418B07F9 /* Pods-Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 24FEEBF29AFE475E32E8B756608C6CCD /* Pods-Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
686E9D314642E39E0C736305520FA3C7 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5224A726D9EABB2D5F18E4597390EF3 /* UIKit.framework */; };
768861C8E4E17559D501B55251427888 /* ActivityTracking.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FB1599D6D3C353926D2842D8788446A /* ActivityTracking.h */; settings = {ATTRIBUTES = (Public, ); }; };
7E3774B3359A93509F11AF8D98A6023D /* MMMaterialDesignSpinner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F29B7982BD4EF376439F0CD2EA934EE /* MMMaterialDesignSpinner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
8C66E32E3ED245C81FF881C3C57AAB6F /* MMMaterialDesignSpinner.h in Headers */ = {isa = PBXBuildFile; fileRef = FBAB61C759DA8335D82AA38BA471FEF1 /* MMMaterialDesignSpinner.h */; settings = {ATTRIBUTES = (Public, ); }; };
8E6614AFBFB598814C63A0A8C2478AB2 /* Pods-MaterialDesignSpinner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4619AC9B6E54337E0B4448B9F6E59D54 /* Pods-MaterialDesignSpinner-dummy.m */; };
91C9710A466A673CFA1C206BE8A86E38 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE59B0D97841C2542CA3D20540685C26 /* Foundation.framework */; };
B44E72E4F7713230B41847CB1F4F72F6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99C06B1B209CA23EC16EBF65CF890313 /* CoreGraphics.framework */; };
C5A08214438FEF26EBFE251B8158C2C4 /* Pods-Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B5281EDC8F0A8FCD3E8B3E6E197EF6AD /* Pods-Tests-dummy.m */; };
D94055572060E633C1C0899300E91FDB /* MMMaterialDesignSpinner.m in Sources */ = {isa = PBXBuildFile; fileRef = 377768DD144BEA858C22F6F6E5E559A9 /* MMMaterialDesignSpinner.m */; };
E31CF08710C2CC62F000CA1FDECA0716 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE59B0D97841C2542CA3D20540685C26 /* Foundation.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
982A30AAE8C51662BB774A80E6BF2DF5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = D0DCF60C86A59107643416A240FAA906;
remoteInfo = MMMaterialDesignSpinner;
};
C0771FDB8569CD51814B13F5C3D8780A /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = D0DCF60C86A59107643416A240FAA906;
remoteInfo = MMMaterialDesignSpinner;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
03B230D3C26E54307C02F65DA12C38B6 /* MMMaterialDesignSpinner-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MMMaterialDesignSpinner-prefix.pch"; sourceTree = "<group>"; };
0C12935C8A6997AEC39D6325367202BA /* Pods-MaterialDesignSpinner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MaterialDesignSpinner.debug.xcconfig"; sourceTree = "<group>"; };
15CC98D90268C2CC07BB35A85564383D /* MMMaterialDesignSpinner-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "MMMaterialDesignSpinner-dummy.m"; sourceTree = "<group>"; };
24FEEBF29AFE475E32E8B756608C6CCD /* Pods-Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Tests-umbrella.h"; sourceTree = "<group>"; };
296841B1A3A44F316165846E7F442447 /* Pods-MaterialDesignSpinner-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MaterialDesignSpinner-acknowledgements.plist"; sourceTree = "<group>"; };
30A94F71805834989B82A8081C257383 /* Pods_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Tests.framework; path = "Pods-Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
33BF9F61F0AD5D1786B667560FB78603 /* Pods-MaterialDesignSpinner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MaterialDesignSpinner.release.xcconfig"; sourceTree = "<group>"; };
3718E831A56717BCC9CCEDDE10B09BC6 /* Pods-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests.release.xcconfig"; sourceTree = "<group>"; };
376CB13A134C0D6E12BF41B776B31C4F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
377768DD144BEA858C22F6F6E5E559A9 /* MMMaterialDesignSpinner.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MMMaterialDesignSpinner.m; sourceTree = "<group>"; };
3CA8FE849D081320B60858908D74259E /* Pods-Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Tests-acknowledgements.plist"; sourceTree = "<group>"; };
3E49D88410D6B85BD2142B70F54EB030 /* Pods-MaterialDesignSpinner-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MaterialDesignSpinner-acknowledgements.markdown"; sourceTree = "<group>"; };
4619AC9B6E54337E0B4448B9F6E59D54 /* Pods-MaterialDesignSpinner-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MaterialDesignSpinner-dummy.m"; sourceTree = "<group>"; };
4DFB699024FF2729C020A9A8BA625D83 /* Pods-MaterialDesignSpinner-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MaterialDesignSpinner-resources.sh"; sourceTree = "<group>"; };
4FB1599D6D3C353926D2842D8788446A /* ActivityTracking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = ActivityTracking.h; sourceTree = "<group>"; };
615BD79D252C18BD861D07CA5F6C57DB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
65A224C4A2AC187B65ADBE3121D42CE8 /* UIRefreshControl+MaterialDesignSpinner.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIRefreshControl+MaterialDesignSpinner.h"; sourceTree = "<group>"; };
69767E81EEF74DA03C18B26CFA2A1E83 /* Pods-MaterialDesignSpinner-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MaterialDesignSpinner-umbrella.h"; sourceTree = "<group>"; };
6DAB18C629B8C65593933533C71A7B1E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
74565DACFA8E98A2363B0715EB43B6A1 /* Pods-Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-resources.sh"; sourceTree = "<group>"; };
8F29B7982BD4EF376439F0CD2EA934EE /* MMMaterialDesignSpinner-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MMMaterialDesignSpinner-umbrella.h"; sourceTree = "<group>"; };
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
99C06B1B209CA23EC16EBF65CF890313 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; };
9BA8FEEDFF069342C41CE634945917E9 /* Pods-Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-Tests.modulemap"; sourceTree = "<group>"; };
9F4322F7FF26855F14049E27E1ED6313 /* Pods_MaterialDesignSpinner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_MaterialDesignSpinner.framework; path = "Pods-MaterialDesignSpinner.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
A133FD5DCB107316C7FB43FBEB23FEAB /* Pods-Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Tests-acknowledgements.markdown"; sourceTree = "<group>"; };
A5224A726D9EABB2D5F18E4597390EF3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
B0D6223725FE168A0FA24F2934FFB330 /* MMMaterialDesignSpinner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MMMaterialDesignSpinner.framework; path = MMMaterialDesignSpinner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B5281EDC8F0A8FCD3E8B3E6E197EF6AD /* Pods-Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Tests-dummy.m"; sourceTree = "<group>"; };
BD32FD2562A186958C922EC5B9A23855 /* Pods-Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Tests-frameworks.sh"; sourceTree = "<group>"; };
C8AE40D588AADE58E7D083CF5C5C6B64 /* MMMaterialDesignSpinner.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = MMMaterialDesignSpinner.modulemap; sourceTree = "<group>"; };
CE59B0D97841C2542CA3D20540685C26 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
D22A5593A1CE92FAF6469BD6081D1DA5 /* Pods-MaterialDesignSpinner.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-MaterialDesignSpinner.modulemap"; sourceTree = "<group>"; };
EC4C5F273BD00EBF1121633F12BB4B6E /* MMMaterialDesignSpinner.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MMMaterialDesignSpinner.xcconfig; sourceTree = "<group>"; };
F4BD5ADCA329BE69CA78EA6CFBCDD1CB /* Pods-MaterialDesignSpinner-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MaterialDesignSpinner-frameworks.sh"; sourceTree = "<group>"; };
F5C0746CA9E7DFD4AE0A93663468579F /* Pods-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Tests.debug.xcconfig"; sourceTree = "<group>"; };
FBAB61C759DA8335D82AA38BA471FEF1 /* MMMaterialDesignSpinner.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MMMaterialDesignSpinner.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
54E48521349A50453E271A48ECE2B1B8 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
91C9710A466A673CFA1C206BE8A86E38 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
70B4D871988CFBB27A5C75024080BED0 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
B44E72E4F7713230B41847CB1F4F72F6 /* CoreGraphics.framework in Frameworks */,
2E6461465B4C8D6F88F5E7869D109CCB /* Foundation.framework in Frameworks */,
686E9D314642E39E0C736305520FA3C7 /* UIKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
9E54D956C0247CBAAB4A2AE7C1A38064 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E31CF08710C2CC62F000CA1FDECA0716 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
122DA2E5084A4393C29BE363C764795C /* Frameworks */ = {
isa = PBXGroup;
children = (
93FD095B5FC2A2BCC81B8E3CFC167E67 /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
16DD66EB9878D38899D6980C67DD82D1 /* Classes */ = {
isa = PBXGroup;
children = (
4FB1599D6D3C353926D2842D8788446A /* ActivityTracking.h */,
FBAB61C759DA8335D82AA38BA471FEF1 /* MMMaterialDesignSpinner.h */,
377768DD144BEA858C22F6F6E5E559A9 /* MMMaterialDesignSpinner.m */,
65A224C4A2AC187B65ADBE3121D42CE8 /* UIRefreshControl+MaterialDesignSpinner.h */,
);
name = Classes;
path = Classes;
sourceTree = "<group>";
};
20A476BF04B0CDAB3D85A5CA27777C2D /* Products */ = {
isa = PBXGroup;
children = (
B0D6223725FE168A0FA24F2934FFB330 /* MMMaterialDesignSpinner.framework */,
9F4322F7FF26855F14049E27E1ED6313 /* Pods_MaterialDesignSpinner.framework */,
30A94F71805834989B82A8081C257383 /* Pods_Tests.framework */,
);
name = Products;
sourceTree = "<group>";
};
424628B6BEC92CB9934775F51FDEE5A3 /* Pods-Tests */ = {
isa = PBXGroup;
children = (
376CB13A134C0D6E12BF41B776B31C4F /* Info.plist */,
9BA8FEEDFF069342C41CE634945917E9 /* Pods-Tests.modulemap */,
A133FD5DCB107316C7FB43FBEB23FEAB /* Pods-Tests-acknowledgements.markdown */,
3CA8FE849D081320B60858908D74259E /* Pods-Tests-acknowledgements.plist */,
B5281EDC8F0A8FCD3E8B3E6E197EF6AD /* Pods-Tests-dummy.m */,
BD32FD2562A186958C922EC5B9A23855 /* Pods-Tests-frameworks.sh */,
74565DACFA8E98A2363B0715EB43B6A1 /* Pods-Tests-resources.sh */,
24FEEBF29AFE475E32E8B756608C6CCD /* Pods-Tests-umbrella.h */,
F5C0746CA9E7DFD4AE0A93663468579F /* Pods-Tests.debug.xcconfig */,
3718E831A56717BCC9CCEDDE10B09BC6 /* Pods-Tests.release.xcconfig */,
);
name = "Pods-Tests";
path = "Target Support Files/Pods-Tests";
sourceTree = "<group>";
};
5C1565B771D8646D274C9F1A31BBF7E6 /* Support Files */ = {
isa = PBXGroup;
children = (
615BD79D252C18BD861D07CA5F6C57DB /* Info.plist */,
C8AE40D588AADE58E7D083CF5C5C6B64 /* MMMaterialDesignSpinner.modulemap */,
EC4C5F273BD00EBF1121633F12BB4B6E /* MMMaterialDesignSpinner.xcconfig */,
15CC98D90268C2CC07BB35A85564383D /* MMMaterialDesignSpinner-dummy.m */,
03B230D3C26E54307C02F65DA12C38B6 /* MMMaterialDesignSpinner-prefix.pch */,
8F29B7982BD4EF376439F0CD2EA934EE /* MMMaterialDesignSpinner-umbrella.h */,
);
name = "Support Files";
path = "Example/Pods/Target Support Files/MMMaterialDesignSpinner";
sourceTree = "<group>";
};
74C7370CDBFCCBD829EBC18A672A7D46 /* Pod */ = {
isa = PBXGroup;
children = (
16DD66EB9878D38899D6980C67DD82D1 /* Classes */,
);
name = Pod;
path = Pod;
sourceTree = "<group>";
};
7DB346D0F39D3F0E887471402A8071AB = {
isa = PBXGroup;
children = (
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
843F1027ED9AF263D1256DA1D1FD8BE5 /* Development Pods */,
122DA2E5084A4393C29BE363C764795C /* Frameworks */,
20A476BF04B0CDAB3D85A5CA27777C2D /* Products */,
B9E566CDDE4C2A538A355B9B396DB567 /* Targets Support Files */,
);
sourceTree = "<group>";
};
843F1027ED9AF263D1256DA1D1FD8BE5 /* Development Pods */ = {
isa = PBXGroup;
children = (
EEDD6E3CE728A6D507AA4A806FA84217 /* MMMaterialDesignSpinner */,
);
name = "Development Pods";
sourceTree = "<group>";
};
93FD095B5FC2A2BCC81B8E3CFC167E67 /* iOS */ = {
isa = PBXGroup;
children = (
99C06B1B209CA23EC16EBF65CF890313 /* CoreGraphics.framework */,
CE59B0D97841C2542CA3D20540685C26 /* Foundation.framework */,
A5224A726D9EABB2D5F18E4597390EF3 /* UIKit.framework */,
);
name = iOS;
sourceTree = "<group>";
};
B9E566CDDE4C2A538A355B9B396DB567 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
D7A93043ABAEB77333537387076C5FD9 /* Pods-MaterialDesignSpinner */,
424628B6BEC92CB9934775F51FDEE5A3 /* Pods-Tests */,
);
name = "Targets Support Files";
sourceTree = "<group>";
};
D7A93043ABAEB77333537387076C5FD9 /* Pods-MaterialDesignSpinner */ = {
isa = PBXGroup;
children = (
6DAB18C629B8C65593933533C71A7B1E /* Info.plist */,
D22A5593A1CE92FAF6469BD6081D1DA5 /* Pods-MaterialDesignSpinner.modulemap */,
3E49D88410D6B85BD2142B70F54EB030 /* Pods-MaterialDesignSpinner-acknowledgements.markdown */,
296841B1A3A44F316165846E7F442447 /* Pods-MaterialDesignSpinner-acknowledgements.plist */,
4619AC9B6E54337E0B4448B9F6E59D54 /* Pods-MaterialDesignSpinner-dummy.m */,
F4BD5ADCA329BE69CA78EA6CFBCDD1CB /* Pods-MaterialDesignSpinner-frameworks.sh */,
4DFB699024FF2729C020A9A8BA625D83 /* Pods-MaterialDesignSpinner-resources.sh */,
69767E81EEF74DA03C18B26CFA2A1E83 /* Pods-MaterialDesignSpinner-umbrella.h */,
0C12935C8A6997AEC39D6325367202BA /* Pods-MaterialDesignSpinner.debug.xcconfig */,
33BF9F61F0AD5D1786B667560FB78603 /* Pods-MaterialDesignSpinner.release.xcconfig */,
);
name = "Pods-MaterialDesignSpinner";
path = "Target Support Files/Pods-MaterialDesignSpinner";
sourceTree = "<group>";
};
EEDD6E3CE728A6D507AA4A806FA84217 /* MMMaterialDesignSpinner */ = {
isa = PBXGroup;
children = (
74C7370CDBFCCBD829EBC18A672A7D46 /* Pod */,
5C1565B771D8646D274C9F1A31BBF7E6 /* Support Files */,
);
name = MMMaterialDesignSpinner;
path = ../..;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
56D4B8F2D78A8EE51C5E5DC3B99F1BFE /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
513A06E050B07E1E97124D57418B07F9 /* Pods-Tests-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8F7E4C1B5F0CDA67C401AFAFE58FBABC /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
768861C8E4E17559D501B55251427888 /* ActivityTracking.h in Headers */,
7E3774B3359A93509F11AF8D98A6023D /* MMMaterialDesignSpinner-umbrella.h in Headers */,
8C66E32E3ED245C81FF881C3C57AAB6F /* MMMaterialDesignSpinner.h in Headers */,
1ECDBBB9B8127400D9F426A0E7C8702D /* UIRefreshControl+MaterialDesignSpinner.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A5658EEFCF3087AECC95FAF6B00097DB /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
3B320A7E585B9CAFB5962FE430562B05 /* Pods-MaterialDesignSpinner-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D3A7407C4F4C6169264835024F090F7 /* Pods-MaterialDesignSpinner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 489B98F2D7B1D342CD62900B95521FAC /* Build configuration list for PBXNativeTarget "Pods-MaterialDesignSpinner" */;
buildPhases = (
590C3CEAD40240E78DAFCD9FBF62710A /* Sources */,
54E48521349A50453E271A48ECE2B1B8 /* Frameworks */,
A5658EEFCF3087AECC95FAF6B00097DB /* Headers */,
);
buildRules = (
);
dependencies = (
BED89BC6F13B68168FB71FD6830CDC2E /* PBXTargetDependency */,
);
name = "Pods-MaterialDesignSpinner";
productName = "Pods-MaterialDesignSpinner";
productReference = 9F4322F7FF26855F14049E27E1ED6313 /* Pods_MaterialDesignSpinner.framework */;
productType = "com.apple.product-type.framework";
};
D0DCF60C86A59107643416A240FAA906 /* MMMaterialDesignSpinner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4CF678652143C6769F9BC51007756198 /* Build configuration list for PBXNativeTarget "MMMaterialDesignSpinner" */;
buildPhases = (
7D5C2E3A4AF6395685053723FB9CA9D3 /* Sources */,
70B4D871988CFBB27A5C75024080BED0 /* Frameworks */,
8F7E4C1B5F0CDA67C401AFAFE58FBABC /* Headers */,
);
buildRules = (
);
dependencies = (
);
name = MMMaterialDesignSpinner;
productName = MMMaterialDesignSpinner;
productReference = B0D6223725FE168A0FA24F2934FFB330 /* MMMaterialDesignSpinner.framework */;
productType = "com.apple.product-type.framework";
};
E31CCE1A7B78DB4FDC6A294699715D8D /* Pods-Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3565ACD9FDC5FBE6DF67F45F124E7283 /* Build configuration list for PBXNativeTarget "Pods-Tests" */;
buildPhases = (
13D0F256140CF3B08F3B0F6B9A72F7A0 /* Sources */,
9E54D956C0247CBAAB4A2AE7C1A38064 /* Frameworks */,
56D4B8F2D78A8EE51C5E5DC3B99F1BFE /* Headers */,
);
buildRules = (
);
dependencies = (
F5AB9FDAF2B6EF3E859800517DE369C1 /* PBXTargetDependency */,
);
name = "Pods-Tests";
productName = "Pods-Tests";
productReference = 30A94F71805834989B82A8081C257383 /* Pods_Tests.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0830;
LastUpgradeCheck = 0700;
};
buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 7DB346D0F39D3F0E887471402A8071AB;
productRefGroup = 20A476BF04B0CDAB3D85A5CA27777C2D /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
D0DCF60C86A59107643416A240FAA906 /* MMMaterialDesignSpinner */,
8D3A7407C4F4C6169264835024F090F7 /* Pods-MaterialDesignSpinner */,
E31CCE1A7B78DB4FDC6A294699715D8D /* Pods-Tests */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
13D0F256140CF3B08F3B0F6B9A72F7A0 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C5A08214438FEF26EBFE251B8158C2C4 /* Pods-Tests-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
590C3CEAD40240E78DAFCD9FBF62710A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8E6614AFBFB598814C63A0A8C2478AB2 /* Pods-MaterialDesignSpinner-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7D5C2E3A4AF6395685053723FB9CA9D3 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
2956E8905120D070E39A294245D6D5E9 /* MMMaterialDesignSpinner-dummy.m in Sources */,
D94055572060E633C1C0899300E91FDB /* MMMaterialDesignSpinner.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
BED89BC6F13B68168FB71FD6830CDC2E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = MMMaterialDesignSpinner;
target = D0DCF60C86A59107643416A240FAA906 /* MMMaterialDesignSpinner */;
targetProxy = 982A30AAE8C51662BB774A80E6BF2DF5 /* PBXContainerItemProxy */;
};
F5AB9FDAF2B6EF3E859800517DE369C1 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = MMMaterialDesignSpinner;
target = D0DCF60C86A59107643416A240FAA906 /* MMMaterialDesignSpinner */;
targetProxy = C0771FDB8569CD51814B13F5C3D8780A /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
34FE9531DA9AF2820790339988D5FF41 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES;
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;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
7A6782EEC0B5765ABFC79B4DBA66CE4A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = EC4C5F273BD00EBF1121633F12BB4B6E /* MMMaterialDesignSpinner.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/MMMaterialDesignSpinner/MMMaterialDesignSpinner-prefix.pch";
INFOPLIST_FILE = "Target Support Files/MMMaterialDesignSpinner/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/MMMaterialDesignSpinner/MMMaterialDesignSpinner.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = MMMaterialDesignSpinner;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
B95ADAFF1D9C90E51FEDC2C51ACACB6D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = EC4C5F273BD00EBF1121633F12BB4B6E /* MMMaterialDesignSpinner.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Target Support Files/MMMaterialDesignSpinner/MMMaterialDesignSpinner-prefix.pch";
INFOPLIST_FILE = "Target Support Files/MMMaterialDesignSpinner/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MODULEMAP_FILE = "Target Support Files/MMMaterialDesignSpinner/MMMaterialDesignSpinner.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_NAME = MMMaterialDesignSpinner;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
C104F7F091290C3D1E248192F07FE689 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES;
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;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGNING_REQUIRED = NO;
COPY_PHASE_STRIP = NO;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_DEBUG=1",
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES;
PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
STRIP_INSTALLED_PRODUCT = NO;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
};
C6F91B41619DD1C5218B746FB6A201E8 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3718E831A56717BCC9CCEDDE10B09BC6 /* Pods-Tests.release.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-Tests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Tests/Pods-Tests.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_Tests;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
ECE5FB78D046078C62DE0031C6741C6E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = F5C0746CA9E7DFD4AE0A93663468579F /* Pods-Tests.debug.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-Tests/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-Tests/Pods-Tests.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_Tests;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
F5B39DD4B98A9D8F1580DE97BF4764FA /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33BF9F61F0AD5D1786B667560FB78603 /* Pods-MaterialDesignSpinner.release.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-MaterialDesignSpinner/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-MaterialDesignSpinner/Pods-MaterialDesignSpinner.modulemap";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_MaterialDesignSpinner;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
F9C235864DBA75AC97E8E124102BFA41 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 0C12935C8A6997AEC39D6325367202BA /* Pods-MaterialDesignSpinner.debug.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "Target Support Files/Pods-MaterialDesignSpinner/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-MaterialDesignSpinner/Pods-MaterialDesignSpinner.modulemap";
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = Pods_MaterialDesignSpinner;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C104F7F091290C3D1E248192F07FE689 /* Debug */,
34FE9531DA9AF2820790339988D5FF41 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
3565ACD9FDC5FBE6DF67F45F124E7283 /* Build configuration list for PBXNativeTarget "Pods-Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
ECE5FB78D046078C62DE0031C6741C6E /* Debug */,
C6F91B41619DD1C5218B746FB6A201E8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
489B98F2D7B1D342CD62900B95521FAC /* Build configuration list for PBXNativeTarget "Pods-MaterialDesignSpinner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F9C235864DBA75AC97E8E124102BFA41 /* Debug */,
F5B39DD4B98A9D8F1580DE97BF4764FA /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4CF678652143C6769F9BC51007756198 /* Build configuration list for PBXNativeTarget "MMMaterialDesignSpinner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B95ADAFF1D9C90E51FEDC2C51ACACB6D /* Debug */,
7A6782EEC0B5765ABFC79B4DBA66CE4A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
}
@@ -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.4</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,19 @@
#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"
#import "UIRefreshControl+MaterialDesignSpinner.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
@@ -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>
@@ -0,0 +1,26 @@
# Acknowledgements
This application makes use of the following third party libraries:
## MMMaterialDesignSpinner
Copyright (c) 2014 Mike Maxwell <mmaxwell@vertical.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Generated by CocoaPods - https://cocoapods.org
@@ -0,0 +1,58 @@
<?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>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2014 Mike Maxwell &lt;mmaxwell@vertical.com&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>MMMaterialDesignSpinner</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_MaterialDesignSpinner : NSObject
@end
@implementation PodsDummy_Pods_MaterialDesignSpinner
@end
@@ -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
@@ -0,0 +1,102 @@
#!/bin/sh
set -e
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()
{
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 --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 --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 ${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 \"$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 \"$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 \"$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)
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH"
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
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`" ] && [ -n "$XCASSET_FILES" ]
then
# 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[];
@@ -0,0 +1,9 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
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 * }
}
@@ -0,0 +1,9 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
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
+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>
@@ -0,0 +1,26 @@
# Acknowledgements
This application makes use of the following third party libraries:
## MMMaterialDesignSpinner
Copyright (c) 2014 Mike Maxwell <mmaxwell@vertical.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Generated by CocoaPods - https://cocoapods.org
@@ -0,0 +1,58 @@
<?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>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2014 Mike Maxwell &lt;mmaxwell@vertical.com&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>MMMaterialDesignSpinner</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>
@@ -0,0 +1,5 @@
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_Tests : NSObject
@end
@implementation PodsDummy_Pods_Tests
@end
+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
+102
View File
@@ -0,0 +1,102 @@
#!/bin/sh
set -e
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()
{
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 --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 --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 ${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 \"$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 \"$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 \"$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)
ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
;;
*)
echo "$RESOURCE_PATH"
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
;;
esac
}
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`" ] && [ -n "$XCASSET_FILES" ]
then
# 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[];
@@ -0,0 +1,9 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
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 * }
}
@@ -0,0 +1,9 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/MMMaterialDesignSpinner"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
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 -1
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
+4 -4
View File
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
#
s.name = "MMMaterialDesignSpinner"
s.version = "0.2.3"
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.
@@ -34,7 +34,7 @@ Pod::Spec.new do |s|
* [kylefox / color.m gist](https://gist.github.com/kylefox/1689973) for creating random UIColor values.
DESC
s.homepage = "https://github.com/misterwell/MMMaterialDesignSpinner"
s.homepage = "https://github.com/misterwell/MMMaterialDesignSpinner.git"
# s.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"
@@ -72,7 +72,7 @@ Pod::Spec.new do |s|
# s.platform = :ios, "5.0"
# When using multiple platforms
s.ios.deployment_target = "5.0"
s.ios.deployment_target = "8.0"
# s.osx.deployment_target = "10.7"
# s.watchos.deployment_target = "2.0"
s.tvos.deployment_target = "9.0"
@@ -84,7 +84,7 @@ Pod::Spec.new do |s|
# Supports git, hg, bzr, svn and HTTP.
#
s.source = { :git => "https://github.com/misterwell/MMMaterialDesignSpinner.git", :tag => "0.2.3" }
s.source = { :git => "https://github.com/misterwell/MMMaterialDesignSpinner.git", :tag => "0.2.4" }
# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
@@ -7,12 +7,14 @@
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; };
@@ -51,6 +53,7 @@
children = (
9295C94E1B253D8900C388EB /* MMMaterialDesignSpinner.h */,
9295C94F1B253D8900C388EB /* MMMaterialDesignSpinner.m */,
75A8F6091E6C2F8E00C7FF55 /* ActivityTracking.h */,
9295C9351B253D2D00C388EB /* Supporting Files */,
);
path = MMMaterialDesignSpinner;
@@ -71,6 +74,7 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
75A8F60A1E6C2F8E00C7FF55 /* ActivityTracking.h in Headers */,
9295C9501B253D8900C388EB /* MMMaterialDesignSpinner.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -37,10 +37,10 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
@@ -62,15 +62,18 @@
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"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
@@ -85,10 +88,10 @@
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
+59
View File
@@ -0,0 +1,59 @@
/*
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;
/** Property to manually set the percent complete of the spinner, in case you don't want to start at 0. Valid values are 0.0 to 1.0 */
@property (nonatomic) CGFloat percentComplete;
/**
* 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
+2 -35
View File
@@ -7,6 +7,7 @@
//
#import <UIKit/UIKit.h>
#import "ActivityTracking.h"
//! Project version number for MMMaterialDesignSpinner.
FOUNDATION_EXPORT double MMMaterialDesignSpinnerVersionNumber;
@@ -19,40 +20,6 @@ FOUNDATION_EXPORT const unsigned char MMMaterialDesignSpinnerVersionString[];
/**
* A control similar to iOS' UIActivityIndicatorView modeled after Google's Material Design Activity spinner.
*/
@interface MMMaterialDesignSpinner : UIView
/** Sets the line width of the spinner's circle. */
@property (nonatomic) CGFloat lineWidth;
/** Sets whether the view is hidden when not animating. */
@property (nonatomic) BOOL hidesWhenStopped;
/** Specifies the timing function to use for the control's animation. Defaults to kCAMediaTimingFunctionEaseInEaseOut */
@property (nonatomic, strong) CAMediaTimingFunction *timingFunction;
/** Property indicating whether the view is currently animating. */
@property (nonatomic, readonly) BOOL isAnimating;
/** 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;
/**
* Starts animation of the spinner.
*/
- (void)startAnimating;
/**
* Stops animation of the spinnner.
*/
- (void)stopAnimating;
@interface MMMaterialDesignSpinner : UIView <ActivityTracking>
@end
+37 -2
View File
@@ -19,6 +19,12 @@ 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;
@synthesize percentComplete=_percentComplete;
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
@@ -36,17 +42,20 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
- (void)awakeFromNib
{
[super awakeFromNib];
[self initialize];
}
- (void)initialize {
self.duration = 1.5f;
self.percentComplete = 0.f;
_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
@@ -58,9 +67,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];
@@ -162,9 +177,9 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
CGFloat endAngle = (CGFloat)(2*M_PI);
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
self.progressLayer.path = path.CGPath;
self.progressLayer.strokeStart = 0.f;
self.progressLayer.strokeEnd = 0.f;
self.progressLayer.strokeEnd = self.percentComplete;
}
#pragma mark - Properties
@@ -187,14 +202,34 @@ 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;
}
- (void)setPercentComplete:(CGFloat)percentComplete {
_percentComplete = percentComplete;
if (_isAnimating) {
return;
}
self.progressLayer.strokeStart = 0.f;
self.progressLayer.strokeEnd = self.percentComplete;
}
@end
@@ -0,0 +1,15 @@
//
// UIRefreshControl_MaterialDesignSpinner.h
// Pods
//
// Created by Mike Maxwell on 7/22/17.
//
//
#import <UIKit/UIKit.h>
@interface UIRefreshControl (MaterialDesignSpinner)
+ (UIRefreshControl *)initWithMaterialDesignSpinner;
@end
+1 -1
View File
@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.2.1</string>
<string>0.2.6</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>