iphone - uiswitch swift 4
¿Cómo personalizar el botón UISwitch en el iPhone? (2)
Usé esta solución: UICustomSwitch : funciona personalizando un UISlider y estableciendo una valuación máxima de 1.
Puede cambiar las imágenes de su interruptor, el texto derecho / izquierdo y usarlo con un color único en el fondo (si no desea usar imágenes).
El único cambio que hice fue sobre el nombre: UI está reservado para Apple classe, así que lo cambié por mi cuenta.
Creé un UISwitch usando este código ...
UISwitch *switch = [[UISwitch alloc]initWithFrame:CGRectMake(110, 230, 60, 60)];
[window addSubview:switchView];
[switchView release];
El botón creado será ....
Las propiedades predeterminadas son,
- Contiene estados " ON " y " OFF "
- El botón de apagado es blanco y el botón de encendido está en color azul
Quiero crear un interruptor personalizado, para que el color de fondo y el texto en el interruptor se cambien. ¿Es posible? Por favor explique en detalle.
Gracias por adelantado,
Rajkanth
No puede modificar el control UISwitch a menos y hasta que escriba su propio control,
Pero la mejor manera hasta ahora, puede usar UISegmentControl y manejar el evento en él para cambiar las imágenes on.png y off.png.
UISegmentedControl* switchView=[[UISegmentedControl alloc] initWithItems:[[[NSMutableArray alloc] initWithObjects:@"On",@"Off",nil] autorelease]];
[switchView setFrame:CGRectMake(20,365,140,28)];
switchView.selectedSegmentIndex=0;
switchView.segmentedControlStyle=UISegmentedControlStyleBar;
[switchView setImage:[UIImage imageNamed:@"onSelected.png"] forSegmentAtIndex:0];
[switchView setImage:[UIImage imageNamed:@"off.png"] forSegmentAtIndex:1];
[switchView addTarget:self action:@selector(checkOnOffState:) forControlEvents:UIControlEventValueChanged];
self.navigationItem.titleView=switchView;
y escriba el código del método checkOnOffState como este-
-(IBAction)checkOnOffState:(id)sender{
UISegmentedControl* tempSeg=(UISegmentedControl *)sender;
if(tempSeg.selectedSegmentIndex==0){
[tempSeg setImage:[UIImage imageNamed:@"onSelected.png"] forSegmentAtIndex:0];
[tempSeg setImage:[UIImage imageNamed:@"off.png"] forSegmentAtIndex:1];
}
else{
[tempSeg setImage:[UIImage imageNamed:@"on.png"] forSegmentAtIndex:0];
[tempSeg setImage:[UIImage imageNamed:@"offSelected.png"] forSegmentAtIndex:1];
}
}