// // CustomSwitch.m // AIIM // // Created by qitewei on 2025/5/22. // #import "CustomSwitch.h" @implementation CustomSwitch - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self commonInit]; } return self; } - (instancetype)initWithCoder:(NSCoder *)coder { self = [super initWithCoder:coder]; if (self) { [self commonInit]; } return self; } - (void)commonInit { self.offBackgroundColor = [UIColor lightGrayColor]; [self addTarget:self action:@selector(updateAppearance) forControlEvents:UIControlEventValueChanged]; [self updateAppearance]; } - (void)setOffBackgroundColor:(UIColor *)offBackgroundColor { _offBackgroundColor = offBackgroundColor; [self updateAppearance]; } - (void)updateAppearance { if (self.isOn) { self.backgroundColor = self.onTintColor; } else { self.backgroundColor = self.offBackgroundColor; } self.layer.cornerRadius = CGRectGetHeight(self.bounds) / 2.0; self.clipsToBounds = YES; } - (void)layoutSubviews { [super layoutSubviews]; [self updateAppearance]; } @end