switch iphone text customization background-color uiswitch

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,

  1. Contiene estados " ON " y " OFF "
  2. 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]; } }