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