diff --git a/.gitignore b/.gitignore index eda65ad..a4f2db6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,6 @@ *.mode2v3 *.perspectivev3 *.xcuserstate -project.xcworkspace/ xcuserdata/ # Generated files @@ -18,4 +17,4 @@ build/ # Backup files *~.nib -/ graphics/ \ No newline at end of file +/ graphics/ diff --git a/DACircularProgress.xcodeproj/project.pbxproj b/DACircularProgress.xcodeproj/project.pbxproj new file mode 100644 index 0000000..139e4b3 --- /dev/null +++ b/DACircularProgress.xcodeproj/project.pbxproj @@ -0,0 +1,301 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 4C76E68D1BB1EB6400DA1FDA /* DACircularProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C76E6891BB1EB6400DA1FDA /* DACircularProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4C76E68E1BB1EB6400DA1FDA /* DACircularProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C76E68A1BB1EB6400DA1FDA /* DACircularProgressView.m */; }; + 4C76E68F1BB1EB6400DA1FDA /* DALabeledCircularProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C76E68B1BB1EB6400DA1FDA /* DALabeledCircularProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4C76E6901BB1EB6400DA1FDA /* DALabeledCircularProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C76E68C1BB1EB6400DA1FDA /* DALabeledCircularProgressView.m */; }; + 4CDA796E1BB1E7240007519F /* DACircularProgress.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CDA796D1BB1E7240007519F /* DACircularProgress.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 4C76E6891BB1EB6400DA1FDA /* DACircularProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DACircularProgressView.h; sourceTree = ""; }; + 4C76E68A1BB1EB6400DA1FDA /* DACircularProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DACircularProgressView.m; sourceTree = ""; }; + 4C76E68B1BB1EB6400DA1FDA /* DALabeledCircularProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DALabeledCircularProgressView.h; sourceTree = ""; }; + 4C76E68C1BB1EB6400DA1FDA /* DALabeledCircularProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DALabeledCircularProgressView.m; sourceTree = ""; }; + 4CDA796A1BB1E7240007519F /* DACircularProgress.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DACircularProgress.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4CDA796D1BB1E7240007519F /* DACircularProgress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DACircularProgress.h; sourceTree = ""; }; + 4CDA796F1BB1E7240007519F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4CDA79661BB1E7240007519F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4CDA79601BB1E7240007519F = { + isa = PBXGroup; + children = ( + 4CDA796C1BB1E7240007519F /* DACircularProgress */, + 4CDA796B1BB1E7240007519F /* Products */, + ); + sourceTree = ""; + }; + 4CDA796B1BB1E7240007519F /* Products */ = { + isa = PBXGroup; + children = ( + 4CDA796A1BB1E7240007519F /* DACircularProgress.framework */, + ); + name = Products; + sourceTree = ""; + }; + 4CDA796C1BB1E7240007519F /* DACircularProgress */ = { + isa = PBXGroup; + children = ( + 4C76E6891BB1EB6400DA1FDA /* DACircularProgressView.h */, + 4C76E68A1BB1EB6400DA1FDA /* DACircularProgressView.m */, + 4C76E68B1BB1EB6400DA1FDA /* DALabeledCircularProgressView.h */, + 4C76E68C1BB1EB6400DA1FDA /* DALabeledCircularProgressView.m */, + 4CDA796D1BB1E7240007519F /* DACircularProgress.h */, + 4CDA796F1BB1E7240007519F /* Info.plist */, + ); + path = DACircularProgress; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 4CDA79671BB1E7240007519F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4CDA796E1BB1E7240007519F /* DACircularProgress.h in Headers */, + 4C76E68D1BB1EB6400DA1FDA /* DACircularProgressView.h in Headers */, + 4C76E68F1BB1EB6400DA1FDA /* DALabeledCircularProgressView.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 4CDA79691BB1E7240007519F /* DACircularProgress */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4CDA79721BB1E7240007519F /* Build configuration list for PBXNativeTarget "DACircularProgress" */; + buildPhases = ( + 4CDA79651BB1E7240007519F /* Sources */, + 4CDA79661BB1E7240007519F /* Frameworks */, + 4CDA79671BB1E7240007519F /* Headers */, + 4CDA79681BB1E7240007519F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DACircularProgress; + productName = DACircularProgress; + productReference = 4CDA796A1BB1E7240007519F /* DACircularProgress.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4CDA79611BB1E7240007519F /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0700; + ORGANIZATIONNAME = "Daniel Amitay"; + TargetAttributes = { + 4CDA79691BB1E7240007519F = { + CreatedOnToolsVersion = 7.0; + }; + }; + }; + buildConfigurationList = 4CDA79641BB1E7240007519F /* Build configuration list for PBXProject "DACircularProgress" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 4CDA79601BB1E7240007519F; + productRefGroup = 4CDA796B1BB1E7240007519F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4CDA79691BB1E7240007519F /* DACircularProgress */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4CDA79681BB1E7240007519F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4CDA79651BB1E7240007519F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4C76E68E1BB1EB6400DA1FDA /* DACircularProgressView.m in Sources */, + 4C76E6901BB1EB6400DA1FDA /* DALabeledCircularProgressView.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 4CDA79701BB1E7240007519F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + 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", + "$(inherited)", + ); + 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; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4CDA79711BB1E7240007519F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 4CDA79731BB1E7240007519F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BITCODE_GENERATION_MODE = marker; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = DACircularProgress/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.danielamitay.DACircularProgress; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 4CDA79741BB1E7240007519F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BITCODE_GENERATION_MODE = bitcode; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = DACircularProgress/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.danielamitay.DACircularProgress; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4CDA79641BB1E7240007519F /* Build configuration list for PBXProject "DACircularProgress" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4CDA79701BB1E7240007519F /* Debug */, + 4CDA79711BB1E7240007519F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4CDA79721BB1E7240007519F /* Build configuration list for PBXNativeTarget "DACircularProgress" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4CDA79731BB1E7240007519F /* Debug */, + 4CDA79741BB1E7240007519F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4CDA79611BB1E7240007519F /* Project object */; +} diff --git a/DACircularProgress.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/DACircularProgress.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..5480633 --- /dev/null +++ b/DACircularProgress.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/DACircularProgress.xcodeproj/xcshareddata/xcschemes/DACircularProgress.xcscheme b/DACircularProgress.xcodeproj/xcshareddata/xcschemes/DACircularProgress.xcscheme new file mode 100644 index 0000000..f9277d9 --- /dev/null +++ b/DACircularProgress.xcodeproj/xcshareddata/xcschemes/DACircularProgress.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DACircularProgress/DACircularProgress.h b/DACircularProgress/DACircularProgress.h new file mode 100644 index 0000000..fea8190 --- /dev/null +++ b/DACircularProgress/DACircularProgress.h @@ -0,0 +1,20 @@ +// +// DACircularProgress.h +// DACircularProgress +// +// Created by Michael Brown on 22/09/2015. +// Copyright © 2015 Daniel Amitay. All rights reserved. +// + +#import + +//! Project version number for DACircularProgress. +FOUNDATION_EXPORT double DACircularProgressVersionNumber; + +//! Project version string for DACircularProgress. +FOUNDATION_EXPORT const unsigned char DACircularProgressVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import "DACircularProgressView.h" +#import "DALabeledCircularProgressView.h" diff --git a/DACircularProgress/DACircularProgressView.h b/DACircularProgress/DACircularProgressView.h index 391b449..25cd286 100644 --- a/DACircularProgress/DACircularProgressView.h +++ b/DACircularProgress/DACircularProgressView.h @@ -8,7 +8,7 @@ #import -@interface DACircularProgressView : UIView +@interface DACircularProgressView : UIView @property(nonatomic, strong) UIColor *trackTintColor UI_APPEARANCE_SELECTOR; @property(nonatomic, strong) UIColor *progressTintColor UI_APPEARANCE_SELECTOR; diff --git a/DACircularProgress/Info.plist b/DACircularProgress/Info.plist new file mode 100644 index 0000000..d3de8ee --- /dev/null +++ b/DACircularProgress/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/README.md b/README.md index c39f44b..e110581 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -## DACircularProgress +## DACircularProgress +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) `DACircularProgress` is a `UIView` subclass with circular `UIProgressView` properties. @@ -12,27 +13,46 @@ View the included example project for a demonstration. To use `DACircularProgress`: +### Manual - Copy over the `DACircularProgress` folder to your project folder. - Make sure that your project includes ``. - `#import "DACircularProgressView.h"` +### Cocoapods +- `$ pod install DACircularProgress` +- `#import "DACircularProgressView.h"` + +### Carthage +- add this repo to your [Cartfile](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfile) +- `@import DACircularProgress;` (Objective-C) +- `import DACircularProgress` (Swift) + ### Example Code +Objective-C ```objective-c - self.progressView = [[DACircularProgressView alloc] initWithFrame:CGRectMake(140.0f, 30.0f, 40.0f, 40.0f)]; self.progressView.roundedCorners = YES; self.progressView.trackTintColor = [UIColor clearColor]; [self.view addSubview:self.progressView]; ``` +Swift +```swift +progressView = DACircularProgressView(frame: CGRectMake(140.0f, 30.0f, 40.0f, 40.0f)) +progressView.roundedCorners = Int(true) // Cannot use Bool, see header for why +progressView.trackTintColor = UIColor.clearColor() +view.addSubview(progressView) +``` + + - You can also use Interface Builder by adding a `UIView` element and setting its class to `DACircularProgress` ## Notes ### Compatibility -iOS5.0+ +iOS5.0+ (if you use Carthage to install then iOS8.0+ is required for framework support) ### Automatic Reference Counting (ARC) support