diff --git a/KLSwitch/KLSwitch.xcodeproj/project.pbxproj b/KLSwitch/KLSwitch.xcodeproj/project.pbxproj index a9783a3..7221ef0 100644 --- a/KLSwitch/KLSwitch.xcodeproj/project.pbxproj +++ b/KLSwitch/KLSwitch.xcodeproj/project.pbxproj @@ -191,7 +191,7 @@ name = KLSwitchTests; productName = KLSwitchTests; productReference = 7710F502176DE33900771BA7 /* KLSwitchTests.octest */; - productType = "com.apple.product-type.bundle"; + productType = "com.apple.product-type.bundle.ocunit-test"; }; /* End PBXNativeTarget section */ @@ -199,7 +199,8 @@ 7710F4E9176DE33900771BA7 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0460; + LastTestingUpgradeCheck = 0730; + LastUpgradeCheck = 0730; ORGANIZATIONNAME = "Kieran Lafferty"; }; buildConfigurationList = 7710F4EC176DE33900771BA7 /* Build configuration list for PBXProject "KLSwitch" */; @@ -300,6 +301,7 @@ CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -374,6 +376,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "KLSwitch/KLSwitch-Prefix.pch"; INFOPLIST_FILE = "KLSwitchTests/KLSwitchTests-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "KL.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = octest; }; @@ -389,6 +392,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "KLSwitch/KLSwitch-Prefix.pch"; INFOPLIST_FILE = "KLSwitchTests/KLSwitchTests-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "KL.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = octest; }; diff --git a/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitch.xcscheme b/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitch.xcscheme new file mode 100644 index 0000000..251fcd0 --- /dev/null +++ b/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitch.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchTests.xcscheme b/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchTests.xcscheme new file mode 100644 index 0000000..36b119f --- /dev/null +++ b/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchTests.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/xcschememanagement.plist b/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..e151061 --- /dev/null +++ b/KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + KLSwitch.xcscheme + + orderHint + 2 + + KLSwitchTests.xcscheme + + orderHint + 3 + + + SuppressBuildableAutocreation + + 7710F4F0176DE33900771BA7 + + primary + + + 7710F501176DE33900771BA7 + + primary + + + + + diff --git a/KLSwitch/KLSwitch/KLSwitch.h b/KLSwitch/KLSwitch/KLSwitch.h index f383dca..85da935 100755 --- a/KLSwitch/KLSwitch/KLSwitch.h +++ b/KLSwitch/KLSwitch/KLSwitch.h @@ -50,5 +50,9 @@ typedef void(^changeHandler)(BOOL isOn); - (void)setOn:(BOOL)on animated:(BOOL)animated; - (void)setLocked:(BOOL)locked; +#pragma mark: setImage +- (void)setTurnOnImage:(UIImage *)turnOnImage; +- (void)setTurnOffImage:(UIImage *)turnOffImage; + @end diff --git a/KLSwitch/KLSwitch/KLSwitch.m b/KLSwitch/KLSwitch/KLSwitch.m index 50af54e..d7a8efb 100755 --- a/KLSwitch/KLSwitch/KLSwitch.m +++ b/KLSwitch/KLSwitch/KLSwitch.m @@ -72,6 +72,12 @@ -(void) growContrastView; -(void) shrinkContrastView; -(void) setOn:(BOOL) on animated:(BOOL) animated; + + +#pragma mark -- setImage +- (void)addTurnOnImage:(UIImage *)image; +- (void)addTurnOffImage:(UIImage *)image; + @end @@ -402,6 +408,15 @@ -(void) setThumbOn:(BOOL) on } [self.thumb setFrame: thumbFrame]; } + +#pragma mark: setImage +- (void)setTurnOnImage:(UIImage *)turnOnImage { + [self.track addTurnOnImage:turnOnImage]; +} + +- (void)setTurnOffImage:(UIImage *)turnOffImage { + [self.track addTurnOffImage:turnOffImage]; +} @end @@ -533,4 +548,26 @@ -(void) shrinkContrastView { [self.contrastView setTransform: CGAffineTransformMakeScale(kSwitchTrackContrastViewShrinkFactor, kSwitchTrackContrastViewShrinkFactor)]; } +#pragma mark -- setImage +- (void)addTurnOnImage:(UIImage *)image { + NSInteger turnOnImageViewTag = 12; + UIImageView *imageView = [self.onView viewWithTag:turnOnImageViewTag]; + if (imageView == nil) { + imageView = [[UIImageView alloc] initWithFrame:self.bounds]; + imageView.tag = turnOnImageViewTag; + } + imageView.image = image; + [self.onView addSubview:imageView]; +} +- (void)addTurnOffImage:(UIImage *)image { + NSInteger turnOffImageViewTag = 12; + UIImageView *imageView = [self.contrastView viewWithTag:turnOffImageViewTag]; + if (imageView == nil) { + imageView = [[UIImageView alloc] initWithFrame:self.bounds]; + imageView.tag = turnOffImageViewTag; + } + imageView.image = image; + [self.contrastView addSubview:imageView]; +} + @end diff --git a/KLSwitch/KLSwitchTests/KLSwitchTests-Info.plist b/KLSwitch/KLSwitchTests/KLSwitchTests-Info.plist index a918878..169b6f7 100644 --- a/KLSwitch/KLSwitchTests/KLSwitchTests-Info.plist +++ b/KLSwitch/KLSwitchTests/KLSwitchTests-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - KL.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType diff --git a/KLSwitchDemo.xcodeproj/project.pbxproj b/KLSwitchDemo.xcodeproj/project.pbxproj index 96bc94c..a69eed1 100644 --- a/KLSwitchDemo.xcodeproj/project.pbxproj +++ b/KLSwitchDemo.xcodeproj/project.pbxproj @@ -24,6 +24,12 @@ 7710F560176DEAF200771BA7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7710F55E176DEAF200771BA7 /* InfoPlist.strings */; }; 7710F563176DEAF200771BA7 /* KLSwitchDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7710F562176DEAF200771BA7 /* KLSwitchDemoTests.m */; }; 7710F577176DEB2600771BA7 /* libKLSwitch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7710F572176DEB1700771BA7 /* libKLSwitch.a */; }; + 795340AC1CFC136C007F003A /* switchOff.png in Resources */ = {isa = PBXBuildFile; fileRef = 795340A91CFC136C007F003A /* switchOff.png */; }; + 795340AD1CFC136C007F003A /* switchOff@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 795340AA1CFC136C007F003A /* switchOff@2x.png */; }; + 795340AE1CFC136C007F003A /* switchOff@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 795340AB1CFC136C007F003A /* switchOff@3x.png */; }; + 795340B21CFC1373007F003A /* switchOn.png in Resources */ = {isa = PBXBuildFile; fileRef = 795340AF1CFC1373007F003A /* switchOn.png */; }; + 795340B31CFC1373007F003A /* switchOn@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 795340B01CFC1373007F003A /* switchOn@2x.png */; }; + 795340B41CFC1373007F003A /* switchOn@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 795340B11CFC1373007F003A /* switchOn@3x.png */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -81,6 +87,12 @@ 7710F561176DEAF200771BA7 /* KLSwitchDemoTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KLSwitchDemoTests.h; sourceTree = ""; }; 7710F562176DEAF200771BA7 /* KLSwitchDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KLSwitchDemoTests.m; sourceTree = ""; }; 7710F56C176DEB1700771BA7 /* KLSwitch.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = KLSwitch.xcodeproj; path = KLSwitch/KLSwitch.xcodeproj; sourceTree = SOURCE_ROOT; }; + 795340A91CFC136C007F003A /* switchOff.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = switchOff.png; sourceTree = ""; }; + 795340AA1CFC136C007F003A /* switchOff@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "switchOff@2x.png"; sourceTree = ""; }; + 795340AB1CFC136C007F003A /* switchOff@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "switchOff@3x.png"; sourceTree = ""; }; + 795340AF1CFC1373007F003A /* switchOn.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = switchOn.png; sourceTree = ""; }; + 795340B01CFC1373007F003A /* switchOn@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "switchOn@2x.png"; sourceTree = ""; }; + 795340B11CFC1373007F003A /* switchOn@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "switchOn@3x.png"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -162,6 +174,12 @@ 7710F543176DEAF200771BA7 /* Default.png */, 7710F545176DEAF200771BA7 /* Default@2x.png */, 7710F547176DEAF200771BA7 /* Default-568h@2x.png */, + 795340AF1CFC1373007F003A /* switchOn.png */, + 795340B01CFC1373007F003A /* switchOn@2x.png */, + 795340B11CFC1373007F003A /* switchOn@3x.png */, + 795340A91CFC136C007F003A /* switchOff.png */, + 795340AA1CFC136C007F003A /* switchOff@2x.png */, + 795340AB1CFC136C007F003A /* switchOff@3x.png */, ); name = "Supporting Files"; sourceTree = ""; @@ -232,7 +250,7 @@ name = KLSwitchDemoTests; productName = KLSwitchDemoTests; productReference = 7710F554176DEAF200771BA7 /* KLSwitchDemoTests.octest */; - productType = "com.apple.product-type.bundle"; + productType = "com.apple.product-type.bundle.ocunit-test"; }; /* End PBXNativeTarget section */ @@ -241,7 +259,8 @@ isa = PBXProject; attributes = { CLASSPREFIX = KL; - LastUpgradeCheck = 0460; + LastTestingUpgradeCheck = 0730; + LastUpgradeCheck = 0730; ORGANIZATIONNAME = "Kieran Lafferty"; }; buildConfigurationList = 7710F529176DEAF200771BA7 /* Build configuration list for PBXProject "KLSwitchDemo" */; @@ -291,9 +310,15 @@ buildActionMask = 2147483647; files = ( 7710F53C176DEAF200771BA7 /* InfoPlist.strings in Resources */, + 795340B21CFC1373007F003A /* switchOn.png in Resources */, 7710F544176DEAF200771BA7 /* Default.png in Resources */, + 795340B31CFC1373007F003A /* switchOn@2x.png in Resources */, 7710F546176DEAF200771BA7 /* Default@2x.png in Resources */, + 795340AE1CFC136C007F003A /* switchOff@3x.png in Resources */, + 795340B41CFC1373007F003A /* switchOn@3x.png in Resources */, + 795340AC1CFC136C007F003A /* switchOff.png in Resources */, 7710F548176DEAF200771BA7 /* Default-568h@2x.png in Resources */, + 795340AD1CFC136C007F003A /* switchOff@2x.png in Resources */, 7710F54B176DEAF200771BA7 /* MainStoryboard.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -400,6 +425,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -449,6 +475,7 @@ GCC_PREFIX_HEADER = "KLSwitchDemo/KLSwitchDemo-Prefix.pch"; INFOPLIST_FILE = "KLSwitchDemo/KLSwitchDemo-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; + PRODUCT_BUNDLE_IDENTIFIER = "KL.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -461,6 +488,7 @@ GCC_PREFIX_HEADER = "KLSwitchDemo/KLSwitchDemo-Prefix.pch"; INFOPLIST_FILE = "KLSwitchDemo/KLSwitchDemo-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; + PRODUCT_BUNDLE_IDENTIFIER = "KL.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -477,6 +505,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "KLSwitchDemo/KLSwitchDemo-Prefix.pch"; INFOPLIST_FILE = "KLSwitchDemoTests/KLSwitchDemoTests-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "KL.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUNDLE_LOADER)"; WRAPPER_EXTENSION = octest; @@ -494,6 +523,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "KLSwitchDemo/KLSwitchDemo-Prefix.pch"; INFOPLIST_FILE = "KLSwitchDemoTests/KLSwitchDemoTests-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "KL.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUNDLE_LOADER)"; WRAPPER_EXTENSION = octest; diff --git a/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchDemo.xcscheme b/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchDemo.xcscheme new file mode 100644 index 0000000..f068556 --- /dev/null +++ b/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchDemo.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchDemoTests.xcscheme b/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchDemoTests.xcscheme new file mode 100644 index 0000000..fd68dff --- /dev/null +++ b/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchDemoTests.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/xcschememanagement.plist b/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..dd313fc --- /dev/null +++ b/KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + KLSwitchDemo.xcscheme + + orderHint + 0 + + KLSwitchDemoTests.xcscheme + + orderHint + 1 + + + SuppressBuildableAutocreation + + 7710F52D176DEAF200771BA7 + + primary + + + 7710F553176DEAF200771BA7 + + primary + + + + + diff --git a/KLSwitchDemo/KLSwitchDemo-Info.plist b/KLSwitchDemo/KLSwitchDemo-Info.plist index 8b459b1..8ed31d1 100644 --- a/KLSwitchDemo/KLSwitchDemo-Info.plist +++ b/KLSwitchDemo/KLSwitchDemo-Info.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - KL.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/KLSwitchDemo/KLViewController.m b/KLSwitchDemo/KLViewController.m index 9e2c560..1f0ecdb 100644 --- a/KLSwitchDemo/KLViewController.m +++ b/KLSwitchDemo/KLViewController.m @@ -34,6 +34,8 @@ - (void)viewDidLoad [self.smallestSwitch setDidChangeHandler:^(BOOL isOn) { NSLog(@"Smallest switch changed to %d", isOn); }]; + [self.smallSwitch setTurnOnImage:[UIImage imageNamed:@"switchOn"]]; + [self.smallSwitch setTurnOffImage:[UIImage imageNamed:@"switchOff"]]; [self.smallSwitch setOn: YES animated: YES]; @@ -52,6 +54,8 @@ - (void)viewDidLoad [self.bigSwitch setDidChangeHandler:^(BOOL isOn) { NSLog(@"Big switch changed to %d", isOn); }]; + [self.bigSwitch setTurnOnImage:[UIImage imageNamed:@"switchOn"]]; + [self.bigSwitch setTurnOffImage:[UIImage imageNamed:@"switchOff"]]; [self.biggestSwitch setOn: YES animated: YES]; diff --git a/KLSwitchDemo/switchOff.png b/KLSwitchDemo/switchOff.png new file mode 100644 index 0000000..372daec Binary files /dev/null and b/KLSwitchDemo/switchOff.png differ diff --git a/KLSwitchDemo/switchOff@2x.png b/KLSwitchDemo/switchOff@2x.png new file mode 100644 index 0000000..e61dced Binary files /dev/null and b/KLSwitchDemo/switchOff@2x.png differ diff --git a/KLSwitchDemo/switchOff@3x.png b/KLSwitchDemo/switchOff@3x.png new file mode 100644 index 0000000..dcd9493 Binary files /dev/null and b/KLSwitchDemo/switchOff@3x.png differ diff --git a/KLSwitchDemo/switchOn.png b/KLSwitchDemo/switchOn.png new file mode 100644 index 0000000..383c8a0 Binary files /dev/null and b/KLSwitchDemo/switchOn.png differ diff --git a/KLSwitchDemo/switchOn@2x.png b/KLSwitchDemo/switchOn@2x.png new file mode 100644 index 0000000..41e81b9 Binary files /dev/null and b/KLSwitchDemo/switchOn@2x.png differ diff --git a/KLSwitchDemo/switchOn@3x.png b/KLSwitchDemo/switchOn@3x.png new file mode 100644 index 0000000..925eefb Binary files /dev/null and b/KLSwitchDemo/switchOn@3x.png differ diff --git a/KLSwitchDemoTests/KLSwitchDemoTests-Info.plist b/KLSwitchDemoTests/KLSwitchDemoTests-Info.plist index a918878..169b6f7 100644 --- a/KLSwitchDemoTests/KLSwitchDemoTests-Info.plist +++ b/KLSwitchDemoTests/KLSwitchDemoTests-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - KL.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType