iOS开发中UISwitch按钮的使用方法简介

2020-01-14 17:11:51王冬梅

 self.leftLabel.backgroundColor = [UIColor clearColor];
 //  self.leftLabel.shadowColor = [UIColor redColor];
 //  self.leftLabel.shadowOffset = CGSizeMake(0,0);
 [self.clippingView addSubview:self.leftLabel];
 [self.leftLabel release];
 
 
 NSString *rightLabelText = NSLocalizedString(@"OFF","Custom UISwitch OFF label. If localized to empty string then I/O will be used");
 if ([rightLabelText length] == 0) 
 {
  rightLabelText = @"O"; // use helvetica uppercase o to be a 0. 
 }
 
 self.rightLabel = [[UILabel alloc] init];
 self.rightLabel.frame = CGRectMake(95, 0, 48, 23);
 self.rightLabel.text = rightLabelText;
 self.rightLabel.textAlignment = NSTextAlignmentCenter;
 self.rightLabel.font = [UIFont boldSystemFontOfSize:17];
 self.rightLabel.textColor = [UIColor grayColor];
 self.rightLabel.backgroundColor = [UIColor clearColor];
 //  self.rightLabel.shadowColor = [UIColor redColor];
 //  self.rightLabel.shadowOffset = CGSizeMake(0,0);
 [self.clippingView addSubview:self.rightLabel];
 [self.rightLabel release];
 
 
}

-(void)layoutSubviews
{
 [super layoutSubviews];
 
 // NSLog(@"leftLabel=%@",NSStringFromCGRect(self.leftLabel.frame));
 
 // move the labels to the front
 [self.clippingView removeFromSuperview];
 [self addSubview:self.clippingView];
 
 CGFloat thumbWidth = self.currentThumbImage.size.width;
 CGFloat switchWidth = self.bounds.size.width;
 CGFloat labelWidth = switchWidth - thumbWidth;
 CGFloat inset = self.clippingView.frame.origin.x;
 
 // NSInteger xPos = self.value * (self.bounds.size.width - thumbWidth) - (self.leftLabel.frame.size.width - thumbWidth/2); 
 NSInteger xPos = self.value * labelWidth - labelWidth - inset;
 self.leftLabel.frame = CGRectMake(xPos, 0, labelWidth, 23);
 
 // xPos = self.value * (self.bounds.size.width - thumbWidth) + (self.rightLabel.frame.size.width - thumbWidth/2); 
 xPos = switchWidth + (self.value * labelWidth - labelWidth) - inset; 
 self.rightLabel.frame = CGRectMake(xPos, 0, labelWidth, 23);
 
 // NSLog(@"value=%f    xPos=%i",self.value,xPos);
 // NSLog(@"thumbWidth=%f    self.bounds.size.width=%f",thumbWidth,self.bounds.size.width);
}