Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 229e5c202d | |||
| 5b48c1d9e2 | |||
| 0082dd2343 | |||
| 49dbcbf4c2 | |||
| cb689478a5 | |||
| f1424862a9 |
@@ -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>";
|
||||
@@ -246,7 +251,7 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
CLASSPREFIX = MM;
|
||||
LastUpgradeCheck = 0510;
|
||||
LastUpgradeCheck = 0830;
|
||||
ORGANIZATIONNAME = "Mike Maxwell";
|
||||
TargetAttributes = {
|
||||
6003F5AD195388D20070C39A = {
|
||||
@@ -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 = 8.0;
|
||||
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 = 8.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
@@ -531,6 +548,7 @@
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "MaterialDesignSpinner/MaterialDesignSpinner-Prefix.pch";
|
||||
INFOPLIST_FILE = "MaterialDesignSpinner/MaterialDesignSpinner-Info.plist";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
@@ -544,6 +562,7 @@
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "MaterialDesignSpinner/MaterialDesignSpinner-Prefix.pch";
|
||||
INFOPLIST_FILE = "MaterialDesignSpinner/MaterialDesignSpinner-Info.plist";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
@@ -566,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;
|
||||
@@ -585,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;
|
||||
|
||||
+12
-7
@@ -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,17 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="vXZ-lx-hvc">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<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="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">
|
||||
@@ -20,106 +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="375" height="667"/>
|
||||
<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="125" y="271" width="125" height="125"/>
|
||||
<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="140.5" y="416" 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="122" y="454" width="131" height="30"/>
|
||||
<state key="normal" title="Change Line Width"/>
|
||||
<connections>
|
||||
<action selector="changeLineWidthButtonTouched:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="Kgo-vV-Mja"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="P6d-eP-pjF">
|
||||
<rect key="frame" x="67.5" y="492" width="240" height="30"/>
|
||||
<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="5.5" width="65.5" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="oZk-x6-Cbo" firstAttribute="centerY" secondItem="BCa-2B-PxA" secondAttribute="centerY" id="9CN-GK-gQI"/>
|
||||
<constraint firstItem="BCa-2B-PxA" firstAttribute="leading" secondItem="oZk-x6-Cbo" secondAttribute="trailing" constant="8.5" id="E0Y-Nj-D7M"/>
|
||||
<constraint firstItem="BCa-2B-PxA" firstAttribute="top" secondItem="P6d-eP-pjF" secondAttribute="top" id="MGc-Sw-dlP"/>
|
||||
<constraint firstItem="oZk-x6-Cbo" firstAttribute="leading" secondItem="P6d-eP-pjF" secondAttribute="leading" id="Qop-uU-SMI"/>
|
||||
<constraint firstAttribute="bottom" secondItem="BCa-2B-PxA" secondAttribute="bottom" id="rMj-n9-UZP"/>
|
||||
<constraint firstAttribute="trailing" secondItem="BCa-2B-PxA" secondAttribute="trailing" id="yAh-JG-gqX"/>
|
||||
<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>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="voE-WH-qy2">
|
||||
<rect key="frame" x="149.5" y="577" width="76" height="30"/>
|
||||
<state key="normal" title="Round Cap"/>
|
||||
<connections>
|
||||
<action selector="rouncCapButtonPressed:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="2Gq-FN-hQJ"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="E1O-wf-Kab">
|
||||
<rect key="frame" x="147.5" y="539" width="80" height="30"/>
|
||||
<state key="normal" title="Square Cap"/>
|
||||
<connections>
|
||||
<action selector="squareCapButtonPressed:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="Wea-lk-mor"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MUs-BJ-ux5">
|
||||
<rect key="frame" x="157.5" y="615" width="61" height="30"/>
|
||||
<state key="normal" title="Butt Cap"/>
|
||||
<connections>
|
||||
<action selector="buttCapButtonPressed:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="swh-1h-iNn"/>
|
||||
</connections>
|
||||
</button>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="2fi-mo-0CV" firstAttribute="top" secondItem="MUs-BJ-ux5" secondAttribute="bottom" constant="22" id="0xl-6Q-hU4"/>
|
||||
<constraint firstItem="Umg-oT-Dv1" firstAttribute="top" secondItem="bxJ-ep-Qc5" secondAttribute="bottom" constant="8" symbolic="YES" id="1EZ-mV-u15"/>
|
||||
<constraint firstItem="HW3-rr-Akw" firstAttribute="width" secondItem="kh9-bI-dsS" secondAttribute="width" multiplier="1:3" id="4dr-09-65z"/>
|
||||
<constraint firstItem="MUs-BJ-ux5" firstAttribute="centerX" secondItem="voE-WH-qy2" secondAttribute="centerX" id="5Rg-aR-c0F"/>
|
||||
<constraint firstItem="MUs-BJ-ux5" firstAttribute="top" secondItem="voE-WH-qy2" secondAttribute="bottom" constant="8" id="7j5-kf-qx7"/>
|
||||
<constraint firstItem="Umg-oT-Dv1" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="A0X-DN-AiI"/>
|
||||
<constraint firstItem="bxJ-ep-Qc5" firstAttribute="top" secondItem="HW3-rr-Akw" secondAttribute="bottom" constant="20" id="Cmt-gg-FUs"/>
|
||||
<constraint firstItem="voE-WH-qy2" firstAttribute="centerX" secondItem="E1O-wf-Kab" secondAttribute="centerX" id="Hzd-yG-hd7"/>
|
||||
<constraint firstItem="E1O-wf-Kab" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="IlT-UV-I9g"/>
|
||||
<constraint firstItem="P6d-eP-pjF" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="LUZ-rw-3h9"/>
|
||||
<constraint firstItem="bxJ-ep-Qc5" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="NEM-nh-Nf9"/>
|
||||
<constraint firstItem="E1O-wf-Kab" firstAttribute="top" secondItem="BCa-2B-PxA" secondAttribute="bottom" constant="17" id="SHP-8S-d1T"/>
|
||||
<constraint firstItem="voE-WH-qy2" firstAttribute="top" secondItem="E1O-wf-Kab" secondAttribute="bottom" constant="8" id="Zad-AA-k4Z"/>
|
||||
<constraint 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="E1O-wf-Kab" firstAttribute="height" secondItem="voE-WH-qy2" secondAttribute="height" id="i9Y-xv-7zX"/>
|
||||
<constraint firstItem="HW3-rr-Akw" firstAttribute="centerX" secondItem="kh9-bI-dsS" secondAttribute="centerX" id="lAp-IZ-ygd"/>
|
||||
<constraint firstItem="voE-WH-qy2" firstAttribute="height" secondItem="MUs-BJ-ux5" secondAttribute="height" id="wVq-Rn-DCM"/>
|
||||
<constraint firstItem="P6d-eP-pjF" firstAttribute="top" secondItem="Umg-oT-Dv1" secondAttribute="bottom" constant="8" id="xcT-AQ-2QR"/>
|
||||
<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>
|
||||
@@ -127,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>
|
||||
|
||||
@@ -132,8 +132,9 @@
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ipad",
|
||||
"size" : "83.5x83.5",
|
||||
"idiom" : "ipad",
|
||||
"filename" : "Icon-60@3x copy.png",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
|
||||
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
|
||||
@@ -34,10 +37,18 @@
|
||||
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 {
|
||||
@@ -52,6 +63,14 @@
|
||||
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
|
||||
|
||||
@@ -62,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>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
PODS:
|
||||
- MMMaterialDesignSpinner (0.2.6)
|
||||
- MMMaterialDesignSpinner (0.2.4)
|
||||
|
||||
DEPENDENCIES:
|
||||
- MMMaterialDesignSpinner (from `../`)
|
||||
@@ -9,7 +9,7 @@ EXTERNAL SOURCES:
|
||||
:path: "../"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
MMMaterialDesignSpinner: f877769592cc4410c51299a64d6c3934a9fcdab1
|
||||
MMMaterialDesignSpinner: 66a80c1c7a745e65e1fefeff613a6510ddc1fe54
|
||||
|
||||
PODFILE CHECKSUM: c0dd544008166879b3152865a647d9ab7cf11291
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "MMMaterialDesignSpinner",
|
||||
"version": "0.2.6",
|
||||
"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",
|
||||
@@ -15,7 +15,7 @@
|
||||
},
|
||||
"source": {
|
||||
"git": "https://github.com/misterwell/MMMaterialDesignSpinner.git",
|
||||
"tag": "0.2.6"
|
||||
"tag": "0.2.4"
|
||||
},
|
||||
"source_files": "Pod/Classes",
|
||||
"frameworks": [
|
||||
|
||||
Generated
+2
-2
@@ -1,5 +1,5 @@
|
||||
PODS:
|
||||
- MMMaterialDesignSpinner (0.2.6)
|
||||
- MMMaterialDesignSpinner (0.2.4)
|
||||
|
||||
DEPENDENCIES:
|
||||
- MMMaterialDesignSpinner (from `../`)
|
||||
@@ -9,7 +9,7 @@ EXTERNAL SOURCES:
|
||||
:path: "../"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
MMMaterialDesignSpinner: f877769592cc4410c51299a64d6c3934a9fcdab1
|
||||
MMMaterialDesignSpinner: 66a80c1c7a745e65e1fefeff613a6510ddc1fe54
|
||||
|
||||
PODFILE CHECKSUM: c0dd544008166879b3152865a647d9ab7cf11291
|
||||
|
||||
|
||||
+110
-106
@@ -7,19 +7,20 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
2E0CC1D2749D35601114E793EAF99204 /* ActivityTracking.h in Headers */ = {isa = PBXBuildFile; fileRef = DB10D0F9392E4BFBC3CC4FD7317A451F /* ActivityTracking.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
3282FA338797F004BE78CF0768EDC90B /* MMMaterialDesignSpinner.h in Headers */ = {isa = PBXBuildFile; fileRef = DDADEB5EC9583723396C1AA7B323FF29 /* MMMaterialDesignSpinner.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
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, ); }; };
|
||||
60C09982352DE750DE8055AAE252CF26 /* MMMaterialDesignSpinner.m in Sources */ = {isa = PBXBuildFile; fileRef = 015BF5F07D0066AF3B8A61EF6C622916 /* MMMaterialDesignSpinner.m */; };
|
||||
80268522ACDEAE90C66ED7DE37D48F93 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99C06B1B209CA23EC16EBF65CF890313 /* CoreGraphics.framework */; };
|
||||
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 */; };
|
||||
9383F69ACDD18BC4A0939EB3F07549C9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE59B0D97841C2542CA3D20540685C26 /* Foundation.framework */; };
|
||||
97727B0FCEB443C2E0EAE78C5E802112 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5224A726D9EABB2D5F18E4597390EF3 /* UIKit.framework */; };
|
||||
B818AB5405E962AD3DD4BDE96E71C582 /* MMMaterialDesignSpinner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CC98D90268C2CC07BB35A85564383D /* MMMaterialDesignSpinner-dummy.m */; };
|
||||
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 */; };
|
||||
D75BA8983484D2630EF7051808457313 /* MMMaterialDesignSpinner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F29B7982BD4EF376439F0CD2EA934EE /* MMMaterialDesignSpinner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
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 */
|
||||
|
||||
@@ -28,20 +29,19 @@
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 9ABA61C745981AA2EEEE2CA252B709C9;
|
||||
remoteGlobalIDString = D0DCF60C86A59107643416A240FAA906;
|
||||
remoteInfo = MMMaterialDesignSpinner;
|
||||
};
|
||||
C0771FDB8569CD51814B13F5C3D8780A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 9ABA61C745981AA2EEEE2CA252B709C9;
|
||||
remoteGlobalIDString = D0DCF60C86A59107643416A240FAA906;
|
||||
remoteInfo = MMMaterialDesignSpinner;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
015BF5F07D0066AF3B8A61EF6C622916 /* MMMaterialDesignSpinner.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MMMaterialDesignSpinner.m; sourceTree = "<group>"; };
|
||||
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>"; };
|
||||
@@ -51,11 +51,14 @@
|
||||
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>"; };
|
||||
@@ -72,11 +75,10 @@
|
||||
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>"; };
|
||||
DB10D0F9392E4BFBC3CC4FD7317A451F /* ActivityTracking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = ActivityTracking.h; sourceTree = "<group>"; };
|
||||
DDADEB5EC9583723396C1AA7B323FF29 /* MMMaterialDesignSpinner.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MMMaterialDesignSpinner.h; 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 */
|
||||
@@ -88,6 +90,16 @@
|
||||
);
|
||||
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;
|
||||
@@ -96,16 +108,6 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
A01F8BCB9B336071E5948A5207926FD8 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
80268522ACDEAE90C66ED7DE37D48F93 /* CoreGraphics.framework in Frameworks */,
|
||||
9383F69ACDD18BC4A0939EB3F07549C9 /* Foundation.framework in Frameworks */,
|
||||
97727B0FCEB443C2E0EAE78C5E802112 /* UIKit.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
@@ -117,12 +119,13 @@
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1BB52FE9515DF2E3CE66DEE10D34A515 /* Classes */ = {
|
||||
16DD66EB9878D38899D6980C67DD82D1 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DB10D0F9392E4BFBC3CC4FD7317A451F /* ActivityTracking.h */,
|
||||
DDADEB5EC9583723396C1AA7B323FF29 /* MMMaterialDesignSpinner.h */,
|
||||
015BF5F07D0066AF3B8A61EF6C622916 /* MMMaterialDesignSpinner.m */,
|
||||
4FB1599D6D3C353926D2842D8788446A /* ActivityTracking.h */,
|
||||
FBAB61C759DA8335D82AA38BA471FEF1 /* MMMaterialDesignSpinner.h */,
|
||||
377768DD144BEA858C22F6F6E5E559A9 /* MMMaterialDesignSpinner.m */,
|
||||
65A224C4A2AC187B65ADBE3121D42CE8 /* UIRefreshControl+MaterialDesignSpinner.h */,
|
||||
);
|
||||
name = Classes;
|
||||
path = Classes;
|
||||
@@ -156,15 +159,6 @@
|
||||
path = "Target Support Files/Pods-Tests";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
49B9B06782B66F636D870F8F9D11EBC0 /* Pod */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1BB52FE9515DF2E3CE66DEE10D34A515 /* Classes */,
|
||||
);
|
||||
name = Pod;
|
||||
path = Pod;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5C1565B771D8646D274C9F1A31BBF7E6 /* Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -179,6 +173,15 @@
|
||||
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 = (
|
||||
@@ -238,7 +241,7 @@
|
||||
EEDD6E3CE728A6D507AA4A806FA84217 /* MMMaterialDesignSpinner */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
49B9B06782B66F636D870F8F9D11EBC0 /* Pod */,
|
||||
74C7370CDBFCCBD829EBC18A672A7D46 /* Pod */,
|
||||
5C1565B771D8646D274C9F1A31BBF7E6 /* Support Files */,
|
||||
);
|
||||
name = MMMaterialDesignSpinner;
|
||||
@@ -256,6 +259,17 @@
|
||||
);
|
||||
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;
|
||||
@@ -264,16 +278,6 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
C2DE1D443CF2D899C71FF802D8219CF5 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
2E0CC1D2749D35601114E793EAF99204 /* ActivityTracking.h in Headers */,
|
||||
D75BA8983484D2630EF7051808457313 /* MMMaterialDesignSpinner-umbrella.h in Headers */,
|
||||
3282FA338797F004BE78CF0768EDC90B /* MMMaterialDesignSpinner.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
@@ -295,13 +299,13 @@
|
||||
productReference = 9F4322F7FF26855F14049E27E1ED6313 /* Pods_MaterialDesignSpinner.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
9ABA61C745981AA2EEEE2CA252B709C9 /* MMMaterialDesignSpinner */ = {
|
||||
D0DCF60C86A59107643416A240FAA906 /* MMMaterialDesignSpinner */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 14EA822B282E0B284758432075781E6C /* Build configuration list for PBXNativeTarget "MMMaterialDesignSpinner" */;
|
||||
buildConfigurationList = 4CF678652143C6769F9BC51007756198 /* Build configuration list for PBXNativeTarget "MMMaterialDesignSpinner" */;
|
||||
buildPhases = (
|
||||
2207EC9B2421BE55997CADAF5B90DDC4 /* Sources */,
|
||||
A01F8BCB9B336071E5948A5207926FD8 /* Frameworks */,
|
||||
C2DE1D443CF2D899C71FF802D8219CF5 /* Headers */,
|
||||
7D5C2E3A4AF6395685053723FB9CA9D3 /* Sources */,
|
||||
70B4D871988CFBB27A5C75024080BED0 /* Frameworks */,
|
||||
8F7E4C1B5F0CDA67C401AFAFE58FBABC /* Headers */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -351,7 +355,7 @@
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
9ABA61C745981AA2EEEE2CA252B709C9 /* MMMaterialDesignSpinner */,
|
||||
D0DCF60C86A59107643416A240FAA906 /* MMMaterialDesignSpinner */,
|
||||
8D3A7407C4F4C6169264835024F090F7 /* Pods-MaterialDesignSpinner */,
|
||||
E31CCE1A7B78DB4FDC6A294699715D8D /* Pods-Tests */,
|
||||
);
|
||||
@@ -367,15 +371,6 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
2207EC9B2421BE55997CADAF5B90DDC4 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B818AB5405E962AD3DD4BDE96E71C582 /* MMMaterialDesignSpinner-dummy.m in Sources */,
|
||||
60C09982352DE750DE8055AAE252CF26 /* MMMaterialDesignSpinner.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
590C3CEAD40240E78DAFCD9FBF62710A /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -384,19 +379,28 @@
|
||||
);
|
||||
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 = 9ABA61C745981AA2EEEE2CA252B709C9 /* MMMaterialDesignSpinner */;
|
||||
target = D0DCF60C86A59107643416A240FAA906 /* MMMaterialDesignSpinner */;
|
||||
targetProxy = 982A30AAE8C51662BB774A80E6BF2DF5 /* PBXContainerItemProxy */;
|
||||
};
|
||||
F5AB9FDAF2B6EF3E859800517DE369C1 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = MMMaterialDesignSpinner;
|
||||
target = 9ABA61C745981AA2EEEE2CA252B709C9 /* MMMaterialDesignSpinner */;
|
||||
target = D0DCF60C86A59107643416A240FAA906 /* MMMaterialDesignSpinner */;
|
||||
targetProxy = C0771FDB8569CD51814B13F5C3D8780A /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
@@ -446,39 +450,7 @@
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
36C93DC0A1F0E45783988F5F4838D06E /* 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;
|
||||
};
|
||||
B3C1874FEC2FE432340F3E710E2D6768 /* Release */ = {
|
||||
7A6782EEC0B5765ABFC79B4DBA66CE4A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EC4C5F273BD00EBF1121633F12BB4B6E /* MMMaterialDesignSpinner.xcconfig */;
|
||||
buildSettings = {
|
||||
@@ -510,6 +482,38 @@
|
||||
};
|
||||
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 = {
|
||||
@@ -705,15 +709,6 @@
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
14EA822B282E0B284758432075781E6C /* Build configuration list for PBXNativeTarget "MMMaterialDesignSpinner" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
36C93DC0A1F0E45783988F5F4838D06E /* Debug */,
|
||||
B3C1874FEC2FE432340F3E710E2D6768 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
@@ -741,6 +736,15 @@
|
||||
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 */;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.2.6</string>
|
||||
<string>0.2.4</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
|
||||
Generated
+1
@@ -12,6 +12,7 @@
|
||||
|
||||
#import "ActivityTracking.h"
|
||||
#import "MMMaterialDesignSpinner.h"
|
||||
#import "UIRefreshControl+MaterialDesignSpinner.h"
|
||||
|
||||
FOUNDATION_EXPORT double MMMaterialDesignSpinnerVersionNumber;
|
||||
FOUNDATION_EXPORT const unsigned char MMMaterialDesignSpinnerVersionString[];
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
/** 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.
|
||||
|
||||
@@ -24,6 +24,7 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
|
||||
@synthesize color=_color;
|
||||
@synthesize timingFunction=_timingFunction;
|
||||
@synthesize duration=_duration;
|
||||
@synthesize percentComplete=_percentComplete;
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
@@ -47,6 +48,7 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
|
||||
|
||||
- (void)initialize {
|
||||
self.duration = 1.5f;
|
||||
self.percentComplete = 0.f;
|
||||
_timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
|
||||
[self.layer addSublayer:self.progressLayer];
|
||||
@@ -175,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
|
||||
@@ -221,4 +223,13 @@ static NSString *kMMRingRotationAnimationKey = @"mmmaterialdesignspinner.rotatio
|
||||
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
|
||||
Reference in New Issue
Block a user