diff --git a/.gitignore b/.gitignore index 6e13704..3938113 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ DerivedData #CocoaPods Pods +Build \ No newline at end of file diff --git a/KACircleProgressView.xcodeproj/project.pbxproj b/KACircleProgressView.xcodeproj/project.pbxproj index 8b84faa..feec4df 100644 --- a/KACircleProgressView.xcodeproj/project.pbxproj +++ b/KACircleProgressView.xcodeproj/project.pbxproj @@ -1,329 +1,808 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - B9758A78183D9374007ED897 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9758A77183D9374007ED897 /* Foundation.framework */; }; - B9758A7A183D9374007ED897 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9758A79183D9374007ED897 /* CoreGraphics.framework */; }; - B9758A7C183D9374007ED897 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9758A7B183D9374007ED897 /* UIKit.framework */; }; - B9758A82183D9374007ED897 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B9758A80183D9374007ED897 /* InfoPlist.strings */; }; - B9758A84183D9374007ED897 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B9758A83183D9374007ED897 /* main.m */; }; - B9758A88183D9374007ED897 /* KAAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B9758A87183D9374007ED897 /* KAAppDelegate.m */; }; - B9758A91183D9374007ED897 /* KAViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9758A90183D9374007ED897 /* KAViewController.m */; }; - B9758AB1183D9390007ED897 /* KACircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = B9758AB0183D9390007ED897 /* KACircleProgressView.m */; }; - B9758AB3183DC79A007ED897 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B9758AB2183DC79A007ED897 /* Default-568h@2x.png */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - B9758A74183D9374007ED897 /* KACircleProgressView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = KACircleProgressView.app; sourceTree = BUILT_PRODUCTS_DIR; }; - B9758A77183D9374007ED897 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - B9758A79183D9374007ED897 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - B9758A7B183D9374007ED897 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - B9758A7F183D9374007ED897 /* KACircleProgressView-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "KACircleProgressView-Info.plist"; sourceTree = ""; }; - B9758A81183D9374007ED897 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - B9758A83183D9374007ED897 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - B9758A85183D9374007ED897 /* KACircleProgressView-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "KACircleProgressView-Prefix.pch"; sourceTree = ""; }; - B9758A86183D9374007ED897 /* KAAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KAAppDelegate.h; sourceTree = ""; }; - B9758A87183D9374007ED897 /* KAAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KAAppDelegate.m; sourceTree = ""; }; - B9758A8F183D9374007ED897 /* KAViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KAViewController.h; sourceTree = ""; }; - B9758A90183D9374007ED897 /* KAViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KAViewController.m; sourceTree = ""; }; - B9758A99183D9374007ED897 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - B9758AAF183D9390007ED897 /* KACircleProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KACircleProgressView.h; sourceTree = ""; }; - B9758AB0183D9390007ED897 /* KACircleProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KACircleProgressView.m; sourceTree = ""; }; - B9758AB2183DC79A007ED897 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - B9758A71183D9374007ED897 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B9758A7A183D9374007ED897 /* CoreGraphics.framework in Frameworks */, - B9758A7C183D9374007ED897 /* UIKit.framework in Frameworks */, - B9758A78183D9374007ED897 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - B9758A6B183D9374007ED897 = { - isa = PBXGroup; - children = ( - B9758A7D183D9374007ED897 /* KACircleProgressViewProject */, - B9758A76183D9374007ED897 /* Frameworks */, - B9758A75183D9374007ED897 /* Products */, - ); - sourceTree = ""; - }; - B9758A75183D9374007ED897 /* Products */ = { - isa = PBXGroup; - children = ( - B9758A74183D9374007ED897 /* KACircleProgressView.app */, - ); - name = Products; - sourceTree = ""; - }; - B9758A76183D9374007ED897 /* Frameworks */ = { - isa = PBXGroup; - children = ( - B9758A77183D9374007ED897 /* Foundation.framework */, - B9758A79183D9374007ED897 /* CoreGraphics.framework */, - B9758A7B183D9374007ED897 /* UIKit.framework */, - B9758A99183D9374007ED897 /* XCTest.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - B9758A7D183D9374007ED897 /* KACircleProgressViewProject */ = { - isa = PBXGroup; - children = ( - B9758A86183D9374007ED897 /* KAAppDelegate.h */, - B9758A87183D9374007ED897 /* KAAppDelegate.m */, - B9758A8F183D9374007ED897 /* KAViewController.h */, - B9758A90183D9374007ED897 /* KAViewController.m */, - B9758AB4183DCC37007ED897 /* KACircleProgressView */, - B9758A7E183D9374007ED897 /* Supporting Files */, - ); - name = KACircleProgressViewProject; - path = KACircleProgressView; - sourceTree = ""; - }; - B9758A7E183D9374007ED897 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - B9758AB2183DC79A007ED897 /* Default-568h@2x.png */, - B9758A7F183D9374007ED897 /* KACircleProgressView-Info.plist */, - B9758A80183D9374007ED897 /* InfoPlist.strings */, - B9758A83183D9374007ED897 /* main.m */, - B9758A85183D9374007ED897 /* KACircleProgressView-Prefix.pch */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - B9758AB4183DCC37007ED897 /* KACircleProgressView */ = { - isa = PBXGroup; - children = ( - B9758AAF183D9390007ED897 /* KACircleProgressView.h */, - B9758AB0183D9390007ED897 /* KACircleProgressView.m */, - ); - name = KACircleProgressView; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - B9758A73183D9374007ED897 /* KACircleProgressView */ = { - isa = PBXNativeTarget; - buildConfigurationList = B9758AA9183D9374007ED897 /* Build configuration list for PBXNativeTarget "KACircleProgressView" */; - buildPhases = ( - B9758A70183D9374007ED897 /* Sources */, - B9758A71183D9374007ED897 /* Frameworks */, - B9758A72183D9374007ED897 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = KACircleProgressView; - productName = KACircleProgressView; - productReference = B9758A74183D9374007ED897 /* KACircleProgressView.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - B9758A6C183D9374007ED897 /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = KA; - LastUpgradeCheck = 0500; - ORGANIZATIONNAME = "Kenneth Parker Ackerson"; - }; - buildConfigurationList = B9758A6F183D9374007ED897 /* Build configuration list for PBXProject "KACircleProgressView" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = B9758A6B183D9374007ED897; - productRefGroup = B9758A75183D9374007ED897 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - B9758A73183D9374007ED897 /* KACircleProgressView */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - B9758A72183D9374007ED897 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B9758A82183D9374007ED897 /* InfoPlist.strings in Resources */, - B9758AB3183DC79A007ED897 /* Default-568h@2x.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - B9758A70183D9374007ED897 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B9758A91183D9374007ED897 /* KAViewController.m in Sources */, - B9758A88183D9374007ED897 /* KAAppDelegate.m in Sources */, - B9758A84183D9374007ED897 /* main.m in Sources */, - B9758AB1183D9390007ED897 /* KACircleProgressView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - B9758A80183D9374007ED897 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - B9758A81183D9374007ED897 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - B9758AA7183D9374007ED897 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - B9758AA8183D9374007ED897 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - 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; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - B9758AAA183D9374007ED897 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "KACircleProgressView/KACircleProgressView-Prefix.pch"; - INFOPLIST_FILE = "KACircleProgressView/KACircleProgressView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - PRODUCT_NAME = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - B9758AAB183D9374007ED897 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "KACircleProgressView/KACircleProgressView-Prefix.pch"; - INFOPLIST_FILE = "KACircleProgressView/KACircleProgressView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - PRODUCT_NAME = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - B9758A6F183D9374007ED897 /* Build configuration list for PBXProject "KACircleProgressView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B9758AA7183D9374007ED897 /* Debug */, - B9758AA8183D9374007ED897 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - B9758AA9183D9374007ED897 /* Build configuration list for PBXNativeTarget "KACircleProgressView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B9758AAA183D9374007ED897 /* Debug */, - B9758AAB183D9374007ED897 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = B9758A6C183D9374007ED897 /* Project object */; -} + + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 18758E0CB0264AC6AC21FA24 + + fileRef + A9A0D81AC1164BA6A1F9EF0A + isa + PBXBuildFile + + 6F0D76BEDB97458E8DF6C4E5 + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + name + Check Pods Manifest.lock + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null +if [[ $? != 0 ]] ; then + cat << EOM +error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. +EOM + exit 1 +fi + + showEnvVarsInLog + 0 + + A9A0D81AC1164BA6A1F9EF0A + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + path + libPods.a + sourceTree + BUILT_PRODUCTS_DIR + + B2D5FE4E82A2472DA5289523 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods.xcconfig + path + Pods/Pods.xcconfig + sourceTree + <group> + + B9758A6B183D9374007ED897 + + children + + B9758A7D183D9374007ED897 + B9758A76183D9374007ED897 + B9758A75183D9374007ED897 + B2D5FE4E82A2472DA5289523 + + isa + PBXGroup + sourceTree + <group> + + B9758A6C183D9374007ED897 + + attributes + + CLASSPREFIX + KA + LastUpgradeCheck + 0500 + ORGANIZATIONNAME + Kenneth Parker Ackerson + + buildConfigurationList + B9758A6F183D9374007ED897 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + en + Base + + mainGroup + B9758A6B183D9374007ED897 + productRefGroup + B9758A75183D9374007ED897 + projectDirPath + + projectReferences + + projectRoot + + targets + + B9758A73183D9374007ED897 + + + B9758A6F183D9374007ED897 + + buildConfigurations + + B9758AA7183D9374007ED897 + B9758AA8183D9374007ED897 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + B9758A70183D9374007ED897 + + buildActionMask + 2147483647 + files + + B9758A91183D9374007ED897 + B9758A88183D9374007ED897 + B9758A84183D9374007ED897 + B9758AB1183D9390007ED897 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + B9758A71183D9374007ED897 + + buildActionMask + 2147483647 + files + + B9758A7A183D9374007ED897 + B9758A7C183D9374007ED897 + B9758A78183D9374007ED897 + 18758E0CB0264AC6AC21FA24 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + B9758A72183D9374007ED897 + + buildActionMask + 2147483647 + files + + B9758A82183D9374007ED897 + B9758AB3183DC79A007ED897 + + isa + PBXResourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + B9758A73183D9374007ED897 + + buildConfigurationList + B9758AA9183D9374007ED897 + buildPhases + + 6F0D76BEDB97458E8DF6C4E5 + B9758A70183D9374007ED897 + B9758A71183D9374007ED897 + B9758A72183D9374007ED897 + F5A2DB8D088441119DF57725 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + KACircleProgressView + productName + KACircleProgressView + productReference + B9758A74183D9374007ED897 + productType + com.apple.product-type.application + + B9758A74183D9374007ED897 + + explicitFileType + wrapper.application + includeInIndex + 0 + isa + PBXFileReference + path + KACircleProgressView.app + sourceTree + BUILT_PRODUCTS_DIR + + B9758A75183D9374007ED897 + + children + + B9758A74183D9374007ED897 + + isa + PBXGroup + name + Products + sourceTree + <group> + + B9758A76183D9374007ED897 + + children + + B9758A77183D9374007ED897 + B9758A79183D9374007ED897 + B9758A7B183D9374007ED897 + B9758A99183D9374007ED897 + A9A0D81AC1164BA6A1F9EF0A + + isa + PBXGroup + name + Frameworks + sourceTree + <group> + + B9758A77183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + System/Library/Frameworks/Foundation.framework + sourceTree + SDKROOT + + B9758A78183D9374007ED897 + + fileRef + B9758A77183D9374007ED897 + isa + PBXBuildFile + + B9758A79183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + CoreGraphics.framework + path + System/Library/Frameworks/CoreGraphics.framework + sourceTree + SDKROOT + + B9758A7A183D9374007ED897 + + fileRef + B9758A79183D9374007ED897 + isa + PBXBuildFile + + B9758A7B183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + UIKit.framework + path + System/Library/Frameworks/UIKit.framework + sourceTree + SDKROOT + + B9758A7C183D9374007ED897 + + fileRef + B9758A7B183D9374007ED897 + isa + PBXBuildFile + + B9758A7D183D9374007ED897 + + children + + B9758A86183D9374007ED897 + B9758A87183D9374007ED897 + B9758A8F183D9374007ED897 + B9758A90183D9374007ED897 + B9758AB4183DCC37007ED897 + B9758A7E183D9374007ED897 + + isa + PBXGroup + name + KACircleProgressViewProject + path + KACircleProgressView + sourceTree + <group> + + B9758A7E183D9374007ED897 + + children + + B9758AB2183DC79A007ED897 + B9758A7F183D9374007ED897 + B9758A80183D9374007ED897 + B9758A83183D9374007ED897 + B9758A85183D9374007ED897 + + isa + PBXGroup + name + Supporting Files + sourceTree + <group> + + B9758A7F183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + KACircleProgressView-Info.plist + sourceTree + <group> + + B9758A80183D9374007ED897 + + children + + B9758A81183D9374007ED897 + + isa + PBXVariantGroup + name + InfoPlist.strings + sourceTree + <group> + + B9758A81183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + text.plist.strings + name + en + path + en.lproj/InfoPlist.strings + sourceTree + <group> + + B9758A82183D9374007ED897 + + fileRef + B9758A80183D9374007ED897 + isa + PBXBuildFile + + B9758A83183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + main.m + sourceTree + <group> + + B9758A84183D9374007ED897 + + fileRef + B9758A83183D9374007ED897 + isa + PBXBuildFile + + B9758A85183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + KACircleProgressView-Prefix.pch + sourceTree + <group> + + B9758A86183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + KAAppDelegate.h + sourceTree + <group> + + B9758A87183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + KAAppDelegate.m + sourceTree + <group> + + B9758A88183D9374007ED897 + + fileRef + B9758A87183D9374007ED897 + isa + PBXBuildFile + + B9758A8F183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + KAViewController.h + sourceTree + <group> + + B9758A90183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + KAViewController.m + sourceTree + <group> + + B9758A91183D9374007ED897 + + fileRef + B9758A90183D9374007ED897 + isa + PBXBuildFile + + B9758A99183D9374007ED897 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + XCTest.framework + path + Library/Frameworks/XCTest.framework + sourceTree + DEVELOPER_DIR + + B9758AA7183D9374007ED897 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_INCLUDING_64_BIT) + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES_ERROR + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES_ERROR + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + COPY_PHASE_STRIP + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES_ERROR + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + IPHONEOS_DEPLOYMENT_TARGET + 7.0 + ONLY_ACTIVE_ARCH + YES + SDKROOT + iphoneos + TARGETED_DEVICE_FAMILY + 1,2 + + isa + XCBuildConfiguration + name + Debug + + B9758AA8183D9374007ED897 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_INCLUDING_64_BIT) + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES_ERROR + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES_ERROR + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + COPY_PHASE_STRIP + YES + ENABLE_NS_ASSERTIONS + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + 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 + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + IPHONEOS_DEPLOYMENT_TARGET + 7.0 + SDKROOT + iphoneos + TARGETED_DEVICE_FAMILY + 1,2 + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + B9758AA9183D9374007ED897 + + buildConfigurations + + B9758AAA183D9374007ED897 + B9758AAB183D9374007ED897 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + B9758AAA183D9374007ED897 + + baseConfigurationReference + B2D5FE4E82A2472DA5289523 + buildSettings + + ASSETCATALOG_COMPILER_APPICON_NAME + AppIcon + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME + LaunchImage + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + KACircleProgressView/KACircleProgressView-Prefix.pch + INFOPLIST_FILE + KACircleProgressView/KACircleProgressView-Info.plist + IPHONEOS_DEPLOYMENT_TARGET + 6.0 + PRODUCT_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Debug + + B9758AAB183D9374007ED897 + + baseConfigurationReference + B2D5FE4E82A2472DA5289523 + buildSettings + + ASSETCATALOG_COMPILER_APPICON_NAME + AppIcon + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME + LaunchImage + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + KACircleProgressView/KACircleProgressView-Prefix.pch + INFOPLIST_FILE + KACircleProgressView/KACircleProgressView-Info.plist + IPHONEOS_DEPLOYMENT_TARGET + 6.0 + PRODUCT_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Release + + B9758AAF183D9390007ED897 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + KACircleProgressView.h + sourceTree + <group> + + B9758AB0183D9390007ED897 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + KACircleProgressView.m + sourceTree + <group> + + B9758AB1183D9390007ED897 + + fileRef + B9758AB0183D9390007ED897 + isa + PBXBuildFile + + B9758AB2183DC79A007ED897 + + isa + PBXFileReference + lastKnownFileType + image.png + path + Default-568h@2x.png + sourceTree + <group> + + B9758AB3183DC79A007ED897 + + fileRef + B9758AB2183DC79A007ED897 + isa + PBXBuildFile + + B9758AB4183DCC37007ED897 + + children + + B9758AAF183D9390007ED897 + B9758AB0183D9390007ED897 + + isa + PBXGroup + name + KACircleProgressView + sourceTree + <group> + + F5A2DB8D088441119DF57725 + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + name + Copy Pods Resources + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + "${SRCROOT}/Pods/Pods-resources.sh" + + showEnvVarsInLog + 0 + + + rootObject + B9758A6C183D9374007ED897 + + diff --git a/KACircleProgressView.xcworkspace/contents.xcworkspacedata b/KACircleProgressView.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ce502e4 --- /dev/null +++ b/KACircleProgressView.xcworkspace/contents.xcworkspacedata @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/KACircleProgressView/KAAppDelegate.m b/KACircleProgressView/KAAppDelegate.m old mode 100644 new mode 100755 index 6769987..cfb5e06 --- a/KACircleProgressView/KAAppDelegate.m +++ b/KACircleProgressView/KAAppDelegate.m @@ -13,10 +13,14 @@ @implementation KAAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - KAViewController * kavc = [[KAViewController alloc] initWithNibName:nil bundle:nil]; - UINavigationController * n = [[UINavigationController alloc] initWithRootViewController:kavc]; - [kavc setTitle:@"KACircleProgressView"]; - [self.window setRootViewController:n]; + + KAViewController * kaVC = [[KAViewController alloc] initWithNibName:nil bundle:nil]; + [kaVC setTitle:@"KACircleProgressView"]; + UINavigationController *kaNC = [[UINavigationController alloc]initWithRootViewController:kaVC]; + kaNC.navigationBar.translucent = NO; + + + [self.window setRootViewController:kaNC]; [self.window makeKeyAndVisible]; // Override point for customization after application launch. return YES; diff --git a/KACircleProgressView/KACircleProgressView.h b/KACircleProgressView/KACircleProgressView.h old mode 100644 new mode 100755 index 555ae01..2ee799b --- a/KACircleProgressView/KACircleProgressView.h +++ b/KACircleProgressView/KACircleProgressView.h @@ -11,12 +11,15 @@ typedef enum{ } KACircleProgressViewType; // type #import -@interface KACircleProgressView : UIView +@interface KACircleProgressView : UIView{ + +} @property (nonatomic, assign) float progress; // progress of the progress view @property (nonatomic, assign) KACircleProgressViewType type; // type of progress view +@property (nonatomic, strong) UIButton * button; // initializer that takes a size (width AND height of view) and a type of progress view diff --git a/KACircleProgressView/KACircleProgressView.m b/KACircleProgressView/KACircleProgressView.m old mode 100644 new mode 100755 index 36e7604..07c578c --- a/KACircleProgressView/KACircleProgressView.m +++ b/KACircleProgressView/KACircleProgressView.m @@ -14,6 +14,7 @@ @interface KACircleProgressView (){ @property (nonatomic, strong) CAShapeLayer * progressBar; // progressbar shape @property (nonatomic, strong) CAShapeLayer * backgroundCircle; // background circle shape + @end @implementation KACircleProgressView #pragma mark - Init Methods - @@ -35,6 +36,7 @@ - (id)initWithSize:(float)size withType:(KACircleProgressViewType)type andProgre NSAssert(type == KACircleProgressViewTypeCirclePlain, @"Should not use this initializer with KACircleProgressViewTypeCirclePlain, please use - (id)initWithSize:(float)size withType:(KACircleProgressViewType)type andProgressBarLineWidth:(int)progressBarLineWidth andCircleBackLineWidth:(int)circlebackLW "); lineWidthOfProgressBar = progressBarLineWidth; lineWidthOfCircleBacking = 0; // default value, if you want to set this use "- (id)initWithSize:(float)size withType:(KACircleProgressViewType)type andProgressBarLineWidth:(int)progressBarLineWidth andCircleBackLineWidth:(int)circlebackLW" + [self createLayersWithType:type]; } return self; @@ -56,16 +58,21 @@ - (id)initWithSize:(float)size withType:(KACircleProgressViewType)type andProgre - (void)createLayersWithType:(KACircleProgressViewType)type{ self.type = type; if (self.type == KACircleProgressViewTypeCircleBacked){ - self.backgroundCircle = [CAShapeLayer layer]; - self.backgroundCircle .strokeColor = [UIColor darkGrayColor].CGColor; - self.backgroundCircle .fillColor = [UIColor clearColor].CGColor; - self.backgroundCircle .lineWidth = lineWidthOfCircleBacking; - [self.layer addSublayer:self.backgroundCircle ]; - UIBezierPath *pathForBackground = [UIBezierPath bezierPath]; - pathForBackground.lineWidth = lineWidthOfCircleBacking; - CGFloat radius = (self.bounds.size.width - (lineWidthOfCircleBacking+lineWidthOfProgressBar)/2.f)/2; - [pathForBackground addArcWithCenter:CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2) radius:radius startAngle:M_PI/2.f endAngle:2.0*M_PI + M_PI/2.f clockwise:YES]; - self.backgroundCircle .path = pathForBackground.CGPath; + + self.button = [UIButton buttonWithType:UIButtonTypeCustom]; + //[self.button addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside]; + // [self.button setTitle:@"Tap to refresh" forState:UIControlStateNormal]; + self.button.titleLabel.font = [UIFont systemFontOfSize:12]; + + self.button.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.width); + self.button.clipsToBounds = YES; + self.button.layer.backgroundColor = [UIColor darkGrayColor].CGColor; + self.button.layer.cornerRadius = self.bounds.size.width/2;//half of the width + self.button.layer.borderColor=[UIColor redColor].CGColor; + self.button.layer.borderWidth=lineWidthOfCircleBacking; + + [self addSubview:self.button]; + } self.progressBar = [CAShapeLayer layer]; self.progressBar.lineWidth = lineWidthOfProgressBar; @@ -77,12 +84,6 @@ - (void)createLayersWithType:(KACircleProgressViewType)type{ [self setBackgroundColor:[UIColor clearColor]]; } -// setting color of circled back circle -- (void)setColorOfBackCircle:(UIColor *)color{ - NSAssert(self.type == KACircleProgressViewTypeCircleBacked, @"Should not use this method; there is no such thing as back circle because of type you initiated this view with"); - [self.backgroundCircle setStrokeColor:color.CGColor]; - [self setNeedsDisplay]; -} // setting color of progress bar - (void)setColorOfProgressBar:(UIColor *)color{ @@ -93,6 +94,8 @@ - (void)setColorOfProgressBar:(UIColor *)color{ // This method maintains square frame (width x width) - (void)setFrame:(CGRect)frame{ frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, frame.size.width); + self.button.frame = CGRectMake(0, 0, frame.size.width, frame.size.width); + self.button.layer.cornerRadius = frame.size.width/2; [super setFrame:frame]; } - (void)setProgress:(float)progress{ diff --git a/KACircleProgressView/KAViewController.h b/KACircleProgressView/KAViewController.h old mode 100644 new mode 100755 index e424507..af39ed1 --- a/KACircleProgressView/KAViewController.h +++ b/KACircleProgressView/KAViewController.h @@ -8,6 +8,16 @@ #import #import "KACircleProgressView.h" -@interface KAViewController : UIViewController +@interface KAViewController : UIViewController{ + UISlider *slider0; + UISlider *slider1; + UILabel *lblProgress;; + UILabel *lblDuration;; + double duration; + double currentValue; + KACircleProgressView * circlePV; + + +} @end diff --git a/KACircleProgressView/KAViewController.m b/KACircleProgressView/KAViewController.m old mode 100644 new mode 100755 index 5def469..30bbf11 --- a/KACircleProgressView/KAViewController.m +++ b/KACircleProgressView/KAViewController.m @@ -7,6 +7,7 @@ // #import "KAViewController.h" +#import "PRTween.h" @interface KAViewController () @@ -16,20 +17,117 @@ @implementation KAViewController - (void)viewDidLoad { - // KACircleProgressView * c = [[KACircleProgressView alloc] initWithSize:20 withType:KACircleProgressViewTypeCircleBacked andProgressBarLineWidth:1 andCircleBackLineWidth:1]; - KACircleProgressView * c = [[KACircleProgressView alloc] initWithSize:100 withType:KACircleProgressViewTypeCircleBacked andProgressBarLineWidth:7 andCircleBackLineWidth:7]; - [c setProgress:0.3]; // set progress to 0.1 out of 1.0 - [self.view addSubview:c]; - [c setCenter:CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2)]; - //[self performSelector:@selector(upDate:) withObject:c afterDelay:0.05]; [super viewDidLoad]; + self.view.backgroundColor = [UIColor whiteColor]; + + circlePV = [[KACircleProgressView alloc] initWithSize:100 withType:KACircleProgressViewTypeCircleBacked andProgressBarLineWidth:7 andCircleBackLineWidth:7]; + [circlePV setProgress:0.3]; // set progress to 0.1 out of 1.0 + [self.view addSubview:circlePV]; + [circlePV setCenter:CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2)]; + [circlePV.button setBackgroundColor:[UIColor lightGrayColor]]; + [circlePV.button addTarget:self action:@selector(refresh) forControlEvents:UIControlEventTouchUpInside]; + [circlePV.button setTitle:@"Tap to refresh" forState:UIControlStateNormal]; + circlePV.button.layer.borderColor=[UIColor darkGrayColor].CGColor; + circlePV.frame = CGRectMake(40, 220, 200, 200); + + slider0 = [[UISlider alloc]initWithFrame:CGRectMake(10, 20, 200, 30)]; + [slider0 setMinimumValue:0]; + [slider0 setMaximumValue:.99999]; + [slider0 setContinuous:YES]; + [slider0 setValue:0.3]; + [self.view addSubview:slider0]; + [slider0 addTarget:self action:@selector(handleValueChanged:event:) forControlEvents:UIControlEventValueChanged]; + + slider1 = [[UISlider alloc]initWithFrame:CGRectMake(10, 140, 300, 30)]; + [slider1 setMinimumValue:0]; + [slider1 setMaximumValue:5]; + [slider1 setContinuous:YES]; + [slider1 setValue:.50]; + [self.view addSubview:slider1]; + [slider1 addTarget:self action:@selector(slider1ValueChanged) forControlEvents:UIControlEventValueChanged]; + + + duration = 2.00; + lblProgress = [[UILabel alloc] initWithFrame:CGRectMake(0, 50, 200, 30)]; + lblProgress.textAlignment = NSTextAlignmentCenter; + lblProgress.lineBreakMode = NSLineBreakByClipping; + lblProgress.backgroundColor = [UIColor clearColor]; + lblProgress.text = @"Progress"; + lblProgress.textColor = [UIColor blackColor]; + [self.view addSubview:lblProgress]; + + lblDuration = [[UILabel alloc] initWithFrame:CGRectMake(0, 170, 300, 30)]; + lblDuration.textAlignment = NSTextAlignmentCenter; + lblDuration.lineBreakMode = NSLineBreakByClipping; + lblDuration.backgroundColor = [UIColor clearColor]; + + lblDuration.text = [NSString stringWithFormat:@"Animation Duration (%.2f) seconds",duration]; + lblDuration.textColor = [UIColor blackColor]; + [self.view addSubview:lblDuration]; + + +} + +-(void)slider1ValueChanged{ + + lblDuration.text = [NSString stringWithFormat:@"Animation Duration (%.2f) seconds",slider1.value ]; + duration = slider1.value; + +} + + + +- (void)handleValueChanged:(id)sender event:(id)event { + + int percent = slider0.value *100; + lblProgress.text = [NSString stringWithFormat:@"Progress value (%d %@)",percent,@"%"]; + + UITouch *touchEvent = [[event allTouches] anyObject]; // there's only one touch + if (touchEvent.phase == UITouchPhaseBegan) { + + currentValue = slider0.value; + } + + if (touchEvent.phase == UITouchPhaseEnded) { + [self animate]; + } + + +} + +-(void)refresh{ + PRTweenPeriod *period = [PRTweenPeriod periodWithStartValue:slider0.value endValue:0 duration:duration]; + + PRTweenOperation *operation = [PRTweenOperation new]; + operation.period = period; + operation.target = self; + operation.timingFunction = &PRTweenTimingFunctionCircOut; + operation.updateSelector = @selector(update:); + + [[PRTween sharedInstance] addTweenOperation:operation]; + } +-(void)animate{ + + PRTweenPeriod *period = [PRTweenPeriod periodWithStartValue:currentValue endValue:slider0.value duration:duration]; + PRTweenOperation *operation = [PRTweenOperation new]; + operation.period = period; + operation.target = self; + operation.timingFunction = &PRTweenTimingFunctionCircOut; + operation.updateSelector = @selector(update:); + [[PRTween sharedInstance] addTweenOperation:operation]; +} + +- (void)update:(PRTweenPeriod*)period { + + CGFloat f =period.tweenedValue; + + [circlePV setProgress:f]; + [circlePV setNeedsDisplay]; + +} + -// testing setting progress by adding 0.01 ever 0.05 seconds -//- (void)upDate:(KACircleProgressView *)c{ -// [c setProgress:c.progress+0.01]; -// [self performSelector:@selector(upDate:) withObject:c afterDelay:0.05]; -//} @end diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..f9eafc6 --- /dev/null +++ b/Podfile @@ -0,0 +1 @@ +pod 'PRTween', '~> 0.0.1' \ No newline at end of file diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..f5b1350 --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,10 @@ +PODS: + - PRTween (0.0.1) + +DEPENDENCIES: + - PRTween (~> 0.0.1) + +SPEC CHECKSUMS: + PRTween: d0439e7917031328f81de4910c5b02e202389939 + +COCOAPODS: 0.27.1 diff --git a/README.md b/README.md index 8fd8062..e70074c 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,11 @@ Feature(s): - Dynamic in size, color, line widths (of both progress line AND background circle line) and type. - Easy to implement. - Fully vectorized (no bitmap images). +- animation tweening +- button to refresh + + +run > Pod install to download PRTween dependency ![alt tag](http://thepearapps.com/progressView@2x.png)