Come personalizzare il pulsante UISwitch in iphone?

Ho creato un UISwitch usando questo codice …

UISwitch *switch = [[UISwitch alloc]initWithFrame:CGRectMake(110, 230, 60, 60)]; [window addSubview:switchView]; [switchView release]; 

Il pulsante creato sarà ….

inserisci la descrizione dell'immagine qui

Le proprietà predefinite sono,

  1. Contiene stati ” ON ” e ” OFF
  2. Il pulsante OFF è bianco e il pulsante ON è di colore blu

Voglio creare un interruttore personalizzato, in modo che il colore di sfondo e il testo nell’interruttore debbano essere modificati. È ansible? Si prega di spiegare in dettaglio.

    Grazie in anticipo,

    Rajkanth

    Non è ansible modificare il controllo di UISwitch a meno che e fino a quando non si scrive il proprio controllo,

    Ma il modo migliore finora, è ansible utilizzare UISegmentControl e gestire l’evento su di esso per cambiare le immagini on.png e 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; 

    e scrivi il codice del metodo checkOnOffState come questo-

     -(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]; } } 

    Ho usato questa soluzione: UICustomSwitch : funziona personalizzando un UISlider e impostando un valore massimo di 1.

    Puoi cambiare le immagini del tuo interruttore, il testo di destra / sinistra e usarlo con un colore unico sullo sfondo (se non vuoi usare le immagini).

    L’unico cambiamento che ho fatto riguarda il nome: l’interfaccia utente è riservata alla class Apple, quindi l’ho modificata per conto mio.