I just created this view and saw that you doubt
hope this helps
.h file:
and .m file:
#import "EDSwitch.h" @implementation EDSwitch - (id)initWithText:(NSString*)on andText:(NSString*)off andDelegate:(id)delegate andOnSelector:(SEL)onSelector andOffSelector:(SEL)offSelector andBackgroundImage: (UIImage*)bgImage andStartingValue:(BOOL)b { self = [super initWithFrame:CGRectZero]; if (self) { UILabel* onLabel = [[UILabel alloc] initWithFrame:CGRectMake(2, 8, 50, 20)]; onLabel.text = on ; onLabel.tag = 1; onLabel.font = [UIFont fontWithName:kCalibri size:15]; onLabel.textAlignment = UITextAlignmentCenter; onLabel.textColor = [UIColor colorFromHexString:@"#009dd0"]; onLabel.backgroundColor = [UIColor clearColor]; [onLabel sizeToFit]; [onLabel setWidth:onLabel.frame.size.width + 4]; UILabel* offLabel = [[UILabel alloc] initWithFrame:CGRectMake(2, 8, 50, 20)]; offLabel.text = off ; offLabel.tag = 1; offLabel.textAlignment = UITextAlignmentCenter; offLabel.font = [UIFont fontWithName:kCalibri size:15]; offLabel.textColor = [UIColor colorFromHexString:@"#009dd0"]; offLabel.backgroundColor = [UIColor clearColor]; [offLabel sizeToFit]; [offLabel setWidth:offLabel.frame.size.width + 4]; float high = MAX([offLabel.text sizeWithFont:offLabel.font].width,[onLabel.text sizeWithFont:onLabel.font].width) + 10; onButton = [UIButton buttonWithType:UIButtonTypeCustom]; [onButton addTarget:self action:@selector(toggled:) forControlEvents:UIControlEventTouchUpInside]; [onButton addTarget:delegate action:onSelector forControlEvents:UIControlEventTouchUpInside]; offButton = [UIButton buttonWithType:UIButtonTypeCustom]; [offButton addTarget:self action:@selector(toggled:) forControlEvents:UIControlEventTouchUpInside]; [offButton addTarget:delegate action:offSelector forControlEvents:UIControlEventTouchUpInside]; [onButton setWidth:high]; [onButton setX:0]; [onButton addSubview:onLabel]; [onLabel setWidth:high]; [onLabel setX:0]; [offButton setWidth:high]; [offButton addSubview:offLabel]; [offButton setX:high]; [offLabel setWidth:high]; [offLabel setX:0]; bg = [[UIImageView alloc] initWithImage:bgImage]; self.frame = CGRectMake(200, 200 , (high*2), 34); self.layer.borderColor = [[[UIColor colorFromHexString:@"#009dd0"] colorWithAlphaComponent:0.5] CGColor]; self.layer.borderWidth = 0.5; self.layer.cornerRadius = 5; [self setX:[UIApplication sharedApplication].keyWindow.frame.size.width - self.frame.size.width - 8]; [self addSubview:bg]; [bg setWidth:[self getWidth]]; [bg setHeight:[self getHeight]]; [self addSubview:onButton]; [self addSubview:offButton]; [onButton setHeight:[self getHeight]]; [offButton setHeight:[self getHeight]]; if(b){ [onButton setBackgroundColor:[UIColor clearColor]]; [offButton setBackgroundColor:[UIColor whiteColor]]; } else{ [onButton setBackgroundColor:[UIColor whiteColor]]; [offButton setBackgroundColor:[UIColor clearColor]]; } } return self; } -(void)toggled:(UIButton*)sender{ if(sender == onButton){ UILabel* l = (UILabel*)[onButton viewWithTag:1]; l.textColor = [UIColor grayColor]; [onButton setBackgroundColor:[UIColor clearColor]]; l = (UILabel*)[offButton viewWithTag:1]; l.textColor = [UIColor colorFromHexString:@"#009dd0"]; [offButton setBackgroundColor:[UIColor whiteColor]]; } else{ UILabel* l = (UILabel*)[offButton viewWithTag:1]; l.textColor = [UIColor grayColor]; [offButton setBackgroundColor:[UIColor clearColor]]; l = (UILabel*)[onButton viewWithTag:1]; l.textColor = [UIColor colorFromHexString:@"#009dd0"]; [onButton setBackgroundColor:[UIColor whiteColor]]; } } @end
using:
[[UIApplication sharedApplication].keyWindow addSubview:[[EDSwitch alloc] initWithText:@"aksdjaksdjh" andText:@"dasjdsaj" andDelegate:self andOnSelector:@selector(logon) andOffSelector:@selector(logoff) andBackgroundImage:[UIImage imageNamed:@"toggleBottom.png"] andStartingValue:YES]];
live long and prosper
eiran
eiran Mar 16 '13 at 20:07 2013-03-16 20:07
source share