0,0 → 1,84 |
// |
// PSToggleSwitchSpecifier.m |
// InAppSettingsTestApp |
// |
// Created by David Keegan on 11/21/09. |
// Copyright 2009 InScopeApps{+}. All rights reserved. |
// |
|
#import "InAppSettingsPSToggleSwitchSpecifierCell.h" |
#import "InAppSettingsConstants.h" |
|
@implementation InAppSettingsPSToggleSwitchSpecifierCell |
|
@synthesize valueSwitch; |
|
// The value associated with the preference when the toggle switch |
// is in the ON position. The value type for this key can be any |
// scalar type, including Boolean, String, Number, Date, or Data. |
// If this key is not present, the default value type is a Boolean. |
|
- (BOOL)getBool{ |
id value = [self.setting getValue]; |
id trueValue = [self.setting valueForKey:@"TrueValue"]; |
id falseValue = [self.setting valueForKey:@"FalseValue"]; |
|
if([value isEqual:trueValue]){ |
return YES; |
} |
|
if([value isEqual:falseValue]){ |
return NO; |
} |
|
//if there is no true or false values the value has to be a bool |
return [value boolValue]; |
} |
|
- (void)setBool:(BOOL)newValue{ |
id value = [NSNumber numberWithBool:newValue]; |
if(newValue){ |
id trueValue = [self.setting valueForKey:@"TrueValue"]; |
if(trueValue){ |
value = trueValue; |
} |
} |
else{ |
id falseValue = [self.setting valueForKey:@"FalseValue"]; |
if(falseValue){ |
value = falseValue; |
} |
} |
[self.setting setValue:value]; |
} |
|
- (void)switchAction{ |
[self setBool:[self.valueSwitch isOn]]; |
} |
|
- (void)setUIValues{ |
[super setUIValues]; |
|
[self setTitle]; |
self.valueSwitch.on = [self getBool]; |
} |
|
- (void)setupCell{ |
[super setupCell]; |
|
//create the switch |
self.valueSwitch = [[UISwitch alloc] initWithFrame:CGRectZero]; |
CGRect valueSwitchFrame = self.valueSwitch.frame; |
valueSwitchFrame.origin.y = (CGFloat)round((self.contentView.frame.size.height*0.5f)-(valueSwitchFrame.size.height*0.5f))-InAppSettingsOffsetY; |
valueSwitchFrame.origin.x = (CGFloat)round((InAppSettingsScreenWidth-(InAppSettingsTotalTablePadding+InAppSettingsCellPadding))-valueSwitchFrame.size.width); |
self.valueSwitch.frame = valueSwitchFrame; |
[self.valueSwitch addTarget:self action:@selector(switchAction) forControlEvents:UIControlEventValueChanged]; |
[self.contentView addSubview:self.valueSwitch]; |
} |
|
- (void)dealloc{ |
[valueSwitch release]; |
[super dealloc]; |
} |
|
@end |