From 9d3efaa0808a67efbce6e2516f98135900d74251 Mon Sep 17 00:00:00 2001 From: szulmj Date: Mon, 30 May 2016 14:29:44 +0800 Subject: [PATCH] add setTurnOnImage and setTurnOffImage --- KLSwitch/KLSwitch.xcodeproj/project.pbxproj | 8 +- .../xcschemes/KLSwitch.xcscheme | 80 +++++++++++++++ .../xcschemes/KLSwitchTests.xcscheme | 80 +++++++++++++++ .../xcschemes/xcschememanagement.plist | 32 ++++++ KLSwitch/KLSwitch/KLSwitch.h | 4 + KLSwitch/KLSwitch/KLSwitch.m | 37 +++++++ .../KLSwitchTests/KLSwitchTests-Info.plist | 2 +- KLSwitchDemo.xcodeproj/project.pbxproj | 34 ++++++- .../xcschemes/KLSwitchDemo.xcscheme | 91 ++++++++++++++++++ .../xcschemes/KLSwitchDemoTests.xcscheme | 80 +++++++++++++++ .../xcschemes/xcschememanagement.plist | 32 ++++++ KLSwitchDemo/KLSwitchDemo-Info.plist | 2 +- KLSwitchDemo/KLViewController.m | 4 + KLSwitchDemo/switchOff.png | Bin 0 -> 1573 bytes KLSwitchDemo/switchOff@2x.png | Bin 0 -> 2358 bytes KLSwitchDemo/switchOff@3x.png | Bin 0 -> 1306 bytes KLSwitchDemo/switchOn.png | Bin 0 -> 1233 bytes KLSwitchDemo/switchOn@2x.png | Bin 0 -> 1382 bytes KLSwitchDemo/switchOn@3x.png | Bin 0 -> 1032 bytes .../KLSwitchDemoTests-Info.plist | 2 +- 20 files changed, 481 insertions(+), 7 deletions(-) create mode 100644 KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitch.xcscheme create mode 100644 KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchTests.xcscheme create mode 100644 KLSwitch/KLSwitch.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchDemo.xcscheme create mode 100644 KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/KLSwitchDemoTests.xcscheme create mode 100644 KLSwitchDemo.xcodeproj/xcuserdata/bu88.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 KLSwitchDemo/switchOff.png create mode 100644 KLSwitchDemo/switchOff@2x.png create mode 100644 KLSwitchDemo/switchOff@3x.png create mode 100644 KLSwitchDemo/switchOn.png create mode 100644 KLSwitchDemo/switchOn@2x.png create mode 100644 KLSwitchDemo/switchOn@3x.png 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 0000000000000000000000000000000000000000..372daeced776368bf078f9cf81491ad06ef59abb GIT binary patch literal 1573 zcmV+=2HN?FP)4Tx062|}Rb6NtRTMtEb7vzY&QokOg>Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u->P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%R z(@8`@R9Fe^R=-OEVHoz#)I-a_ArP7z4s1BMO%6r4p*h-gsHI(@Kfoj$8{At8)UASW zX$S-folb5DJlq<@MZvSo^US_i5RNa@rtYBkTkd<`=Ye~k=lgNza^b)PFab;e6Tk#8 zf&Z5P<21|j`Fty%&$FN_m&<)I3}gOQqhrhv6I`WIIW-I;GaL?gz(6n<)V*GBF_lW) z5L2IrSV$HyVwyWJN9oL3p6w4L!hgUC#oS#;vvOW~$Zd zu4$V7Xf*n06=t0SMz)|IxYj;Bx7`dm>@Fg75(^QX3^>4D#eu%&8x7#g}>p2jKMC3#wp;^V#b4Qo~QH@69K-09V>2!KX&c_IP!H&jh{! XHDs>pv!c2V00000NkvXXu0mjf$T|ho literal 0 HcmV?d00001 diff --git a/KLSwitchDemo/switchOff@2x.png b/KLSwitchDemo/switchOff@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e61dcedb2de7aaa14a26e013241862d7c652be24 GIT binary patch literal 2358 zcmb7G=|2+;03LE}jx@$Z)acb*nHnKSx#nt)F(M*i8KPIObIx}N<(klPM$RE6$xxJB zl_)vqK5J|mGso*+cz?g=`0{*uK0LoC8Es=G43q`}003c>xv|}m-#((D0N;@=!?{ra zz%gOJt5?yet5@aG!GX8^{JjAH?X)zEo39K;T)#EM2c|G+?|&ij-g5(CMd2*R3&l-u z2$Pe@01^s0c4qk&>-XT}PlMW;t^38-Owf@Us|Dg+?aeXrN`FMh^_$dlfQne3*1u`B4I~ zNRqGE$yQd`t`<@M>S?;_lPj!YgD);62UO32@p^L(-R9F+8sYoh|w7s?gB zn;~bg>T-(Zx!kN_*rgu+ddBO=`w;!;G{4*PDzo2`cro_4q}<~V`@45cg*Y1Z-`$I> zacfn}3niWfe@_-Q1krCE6yiI56Pft;6`%78^%LkfT{+4Z6_;jgyDY0R3r+U~X7Avm zUdhnLNd*~V27Heurt&G}VsvBInsNRrYGGOJ%aqg6O9@D(%B*VAXRW1P`_9qos;urO zouOUL7hM<(-D4feZ?5NWehlW|?VmE17FI9j_eF#m@9n+~GiOBw7hd|c61mJwAgS{2 zJ(p}y}$<1Dq7qIXQA>Ze#U>kfk3e`?jpF(gr(?Nv$A9w!MEtUqZa-qH}tf=@4rpe zv@0(#nY`50TI6x43Ab{!|52kN^6Fn$-#HGiTif0T_XgJ$6)oFWvrzIIr$M$mduCorT~2x~ z^>2?=y01NP4DWK1mp--iaH{~(Dhj@?X7+?5)Il}aT<56GrZ)jdGBL3qVF6N~d-Vt=@x9kDZd@;u)@E zI)djhJ=WqML=jl?-j0rr=K6HYX zXJn~?;P_+t5Jw;!Mu0#dr;76OVZ?oqBSbhhpt!xSg3yyI{(&D_L*ua7Y|zHJq2b{& zEK&@Ni5Eht4yI+^6LkuJUd8B1!Wq%)4^f5U(xz_~(2W_q;I`uvK2U-g4?(Ux3)^<5oUQNIY{mr z@45b>UR5d%1e(B<`Z}key zgbPntI`H1JSevykUmg{){s!j&d@L+_wGO&Ars9>@U@*9ywYBA-bjL^{TtbnoJH-n6 zoG;_>ny}TbS4W}H`3#%ke~Gl0!uz-7T_S>m8RF5+;Eynw%6j;*AeN&;*0dqH)-^e< zis6aJ|5}sMs{I2!mns*R)F0sKjI(VeX=rHRy!xG8UDrFpz>fDMX$DWo0toaF=RYxu}O=OXU*Mn6p)tc4DNVTBcJzk;C=(mwx+@-W{{g8#YFGdO literal 0 HcmV?d00001 diff --git a/KLSwitchDemo/switchOff@3x.png b/KLSwitchDemo/switchOff@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..dcd9493a435ca44994c2873a54d41076d0bfee45 GIT binary patch literal 1306 zcmeAS@N?(olHy`uVBq!ia0vp^Gl4jPgBeI#$}2DSr z1<%~X^wgl##FWaylc_cg49seoArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XQrEMU}mmhZmDNz zYHn^~uA^XNU}&muV61O!plf7oWny4uVx#~CNh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*s+860W~8sV9F zDf#8anqWP?zE+-j#U+V($*G<$wn{)#^fEJ3tPD(@jf|ZPoGl&AoD2 zoScmejm%wL%wc+6@{>z*Q}aq-dQ%X3U2y6JC5PMspv^9+MVV!(DQ-pixe8!!TV>*Q ziz80+pn6kqyTu8oUVWfr^g)q}6xlE#UjG-XkadDZZW4lwS#?oS2~K+{Pnmgv?-_cyiYFRi)=ww@jMqy8l?v zp%W@+f0;}=GGS`g3`^dZ?$amcpNdjC(H8h@rET5zmu7~4Qjf~~{v5SQa&5)wBio8z z-dEebS0Hpws%L4o{^qlrrq!e#{q{CTaigu?x=ktk|1%S+CU4n4p>ye)xo)#mePvQt zpZlpaB{bZ9rfz-cj<&3_DR1+)ojEmU@tLm3{T!v*nSDmqO7()j?^|~No^!O;{PDHT zJJJtqbg?yOzHh4cF8%KRI iBaY3dJNx+=*%)?h4*7NI!5n{3Y31qa=d#Wzp$Pz$e(3W6 literal 0 HcmV?d00001 diff --git a/KLSwitchDemo/switchOn.png b/KLSwitchDemo/switchOn.png new file mode 100644 index 0000000000000000000000000000000000000000..383c8a00527e069ce481da376a5d26d0e28dc46b GIT binary patch literal 1233 zcmV;?1TOoDP)4Tx062|}Rb6NtRTMtEb7vzY&QokOg>Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u->P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%Q ze@R3^R9Fe^*3k)oFbqY}>H=NBDICcCr!b8Jl<=T525!NxKAPm@$JRIqAb;qmM(U1 v^JS0t$pVQAzcU3GX%PVg5I_I{1eOa7Wf>0d7j6YB00000NkvXXu0mjfw*gh^ literal 0 HcmV?d00001 diff --git a/KLSwitchDemo/switchOn@2x.png b/KLSwitchDemo/switchOn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..41e81b9261b5a64005bc077556e9b00a9372c450 GIT binary patch literal 1382 zcmb`HTRamA0LHg5B)1Ocl0~HCTBA|ZkV_V_nIR@}Cv#heWHUl2mqaV1%{d*p3u7Tf z=pyqgl3YXDkQUR5%{t!BTTkcV`@aA0_q}{iUpD&eX<2D?X#fBqi*mGc+sTj}SxZUm zI7c6Z0szEi!)%oHuX@A8vKhRJPd-HA~x zJtX628k%#XVx<^iS{&ZqI1~Jp#4F?8Px{&x$^~=Us=cTMN-eRwx5qSY}SpvqdYngPw9D|ct*1HV1Q4aNhn zY!zr)Eqm|d2XL52t@})_Je~`D|BQ%C&J7RwWH>*P1;$|`vhFD4zwZC(AR{>XXv~l9 z60uUvS^O)Y^v`K}V+{9#h(_oM%is~7Jsd8kA=9}R@B)Kly6ibjpHuZMnuAbk{vv_g zs_}7>T3WEjO5*0!Oi4q<9DAIB%3SY|eg#?HRABF6_V8 z6W_-?=Dog-5PzE8?o+b%JWfEs-d|@gE*~oyOiHv9ZaqnK-?+VFW8ieC^518OH;w{+nbYBVVZaks|LMB1OXG#}f3l4I&t zQEESZoY6t||7EK0jK{vOHI!?;rZae00QT(^4)`_VmkiA@t@CPS?VhYnzs(gPjBg-} zc<_<($#abv_uTt+N0aljFOgov1e`iSVgd5)O>uvAKa>}{_Q_M;A({HJnBB19Yk4l( zSk9sL4tOhK(?jiSu3ha$+D0bBu=5aEZ+oC~i2RB?L}rnDd_e_>!Lo&}IpY{jqTc{N zf~W31n*>QzWri+MFV>#fuM?@f4-(f4pTk^$tsjz+3Ot1wPo>ta2p}|*`zN7tftsHm z3h-UV9>8otBWS}#gu}Tn#S|TedPKWeblE889Iy?_DT2HIc(8K2z^%-)#SGPHgJXvIyZ76YDIQPIl<{|VSsuAT%TI9%*m=$z4pR6 zFASSGLGa!S=FV*7Zd_bm6)7}EMz4Ing^0;JPOIJCbg z8UO$)q3mqjF9TQKAf$WIO7<8l+eb{IYMzHATij3=x!<2CEw)P|2D~rb$uVkdW)&|k zrJ!Y<0sw-31D&7|Gv9%>T;lTdy1e;boB9P(Jx^04is&YJt-8#rbbg*(Lc}rM{cjv` zO87=nP&i08%SjKfREYn7Xk7bstcZmq4RcPX8ueNZFu4nsl&PM;-%S3mYE`~0)*Gxk V#7y|!vh$w+l>J$|`cwW_{{;-SfFu9_ literal 0 HcmV?d00001 diff --git a/KLSwitchDemo/switchOn@3x.png b/KLSwitchDemo/switchOn@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..925eefbe09e8def41662e1500d7e3b76f8fe4679 GIT binary patch literal 1032 zcmaJ=J#5oJ6n2S(P*Ek;vT(Q(0*UzSBu-+hrgiM34XUHaN!75`u`i94*k|l3aU&!o zHYO&9j?74`45+{gqI6(_oec>wFqdzQ{1lQgu@| z>3T@N-76{jmu`RubXg|l7HQxP8CW4=R0p>asCw2OGLhvRJp71O876hhZMI0u*phAR zaaMxiVlSXmTUD}VyWCnZgQ zhVg%>=S|TOG0}Ox{}hgz2LXa6itv7D(~Ik@B%uOX3z0=|*u=O$>0-T$368or0Gc-H z8o0gV`VJmMcSan;kgI+~EZ;^|U16yT=emx}Yeg|z5lWJpF9||fR4bBN7F0nh7Wqmk zuTQu-w)Z{clL^;3=W27g$vAicjjW^4eT1A!h&?bWTXyH?BF)tsbDjCQsB^iHCIgep zy>Qu+BRWCJb~?J$nGQel>BNV0wAaNGoj!}p^{r<4bY$C)|Mcm}C1TbZr_7Hx{C(=R zs=C^YzyJIqEHM1F)XP^-zP|XqyuNU>eK=#sC!apgSpWG9?%NUkz+A0KH{bO(j%f_0 MTCVA@OS@110!&0zuK)l5 literal 0 HcmV?d00001 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