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

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

 NSLog(@"postendTrackingWithtouch");
 m_touchedSelf = YES;
 
 [self setOn:on animated:YES];
}

- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
 [super touchesBegan:touches withEvent:event];
  NSLog(@"touchesBegan");
 m_touchedSelf = NO;
 on = !on;
}

- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
{
 [super touchesEnded:touches withEvent:event];
 NSLog(@"touchesEnded");
 
 if (!m_touchedSelf)
 {
  [self setOn:on animated:YES];
  [self sendActionsForControlEvents:UIControlEventValueChanged];
 }
}

-(void)dealloc
{
 [tintColor release];
 [clippingView release];
 [rightLabel release];
 [leftLabel release];
 
 [super dealloc];
}

@end


看代码可以知道,其实它是通过继承UISlider控件实现的,UISlider的左右分别是个UILabel,当YES的时候,滑块滑到了最右边,NO的时候滑到了最左边。
所以在代码中使用它呢?这里再举一个例子:
复制代码
- (void)loadView
{
 UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
 self.view = contentView;
 contentView.backgroundColor = [UIColor whiteColor];
 
 // Standard ON/OFF
 HMCustomSwitch *switchView = [[HMCustomSwitch alloc] initWithFrame:CGRectZero];
 switchView.center = CGPointMake(160.0f, 20.0f);
 switchView.on = YES;
 [contentView addSubview:switchView];
 [switchView release];
 
 // Custom YES/NO
 switchView = [HMCustomSwitch switchWithLeftText:@"YES" andRight:@"NO"];
 switchView.center = CGPointMake(160.0f, 60.0f);
 switchView.on = YES;
 [contentView addSubview:switchView];
 
 // Custom font and color
 switchView = [HMCustomSwitch switchWithLeftText:@"Hello " andRight:@"ABC "];
 switchView.center = CGPointMake(160.0f, 100.0f);
 switchView.on = YES;
 [switchView.leftLabel setFont:[UIFont boldSystemFontOfSize:13.0f]];
 [switchView.rightLabel setFont:[UIFont italicSystemFontOfSize:15.0f]];