2011-12-22 11 views

Respuesta

55

Creo que lo que busca es algo como esto

UISwitch *testSwitch; //just something I made up 
[testSwitch setOnTintColor:[UIColor greenColor]]; 
8

Antes de iOS 5, sin necesidad de escribir su propio control personalizado UISwitch, tal vez mediante un UISegmentedControl, Apple no permite cambiar el color de un estándar UISwitch.

Hay una propiedad privada setAlternateColor: YES que va a cambiar el color a naranja, y lo que se necesita para crear una categoría para la clase UISwitch, pero esto no será aprobada en el proceso de revisión de Apple.

Estas son algunas de encargo UISwitch proyectos para su uso en IOS 3.0 - 4.1:

  1. http://osiris.laya.com/projects/rcswitch/
  2. http://www.alexcurylo.com/blog/2010/07/30/custom-uiswitch/
  3. Stackoverflow Anser: https://stackoverflow.com/a/5088099/171206 (utilizando UISegmentedControl)

introducidos en iOS 5, el UISwitch ahora tiene una propiedad onTintColor.

[mySwitch setOnTintColor: [UIColor blackColor]]; 
2

Finalmente, con iOS5 puede cambiar el color del interruptor con la propiedad onTintColor.

UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; 
s.on = YES; 
s.onTintColor = [UIColor redColor]; 
[self.view addSubview:s]; 
[s release]; 

producir este

enter image description here

espero que esto ayuda!

35

En Xcode 5 y iOS 7 es ahora en el inspector de atributos:

enter image description here

Cambio del Tinte En cambiará el color del botón cuando está encendido.

enter image description here

espero que eso es lo que estaba buscando! A pesar de que publicó esa pregunta hace tres años.

+0

Perfect. muchas gracias por las capturas de pantalla !! – swiftBoy

7

Swift 3:

yourSwitch.onTintColor = .red 
8

Swift 3

solución viable

var switcher = UISwitch() 
switcher.onTintColor = .green 
switcher.tintColor = .green 
Cuestiones relacionadas