How to set UISwitch border color?

Will you please try adding this line to your AppDelegate's didFinishLaunchingWithOptions

[[UISwitch appearance] setTintColor:[UIColor grayColor]];

This should apply the chosen Tint color on all your UISwitch controls.


Your [[UIView appearance] setTintColor:[UIColor whiteColor]]; is interfering with the tint color of your switch. The command to set the tint color is self.mySwitch.tintColor = [UIColor grayColor]; which sets the color used to tint the outline of the switch when it is turned off.


Rather than using the appearance proxies you can also use:

[self.mySwitch setThumbTintColor:[UIColor blueColor]];
[self.mySwitch setOnTintColor:[UIColor redColor]];

ie. Use setOnTintColor for the background/border color.