C'è qualche controllo della casella di controllo nella libreria oggetti per le applicazioni iOS? La cosa più vicina che vedo è il controllo dell'interruttore, che può assumere un valore booleano.Controllo casella di controllo per applicazione iOS
risposta
È possibile utilizzare lo stato selezionato di un UIButton, impostare le immagini differenti (o anche testi) per differenti (tramite codice o Interface Builder):
[button setImage:[UIImage imageNamed:@"selected.png"]
forState:UIControlStateSelected];
[button setImage:[UIImage imageNamed:@"unselected.png"]
forState:UIControlStateNormal];
E nel tocco l'azione interna:
- (IBAction)buttonTouched:(id)sender
{
button.selected = !button.selected;
// add other logic
}
Molto utile per me. Grazie ... – Vaquita
Questa è una libreria open source che ne fornisce l'implementazione. https://github.com/t4ku/RadioButtonWithUIKit –
Non funziona. Devi prendere UIImageView. –
Questo è il codice che uso per due caselle di controllo sullo schermo. (Li ho messi nella parte inferiore di due immagini che sono anche sullo schermo.Usisco UIControlEventTouchDown per chiamare il metodo checkBoxTapped.Questo metodo parla con il mio controller di visualizzazione principale dove decido se la risposta è stata corretta o errata. Controller richiama l'questo punto di vista e gli dice di cambiare la casella di testo vuota, o un assegno:
o un x
// Put the Checkboxes on the screen
UIImage *checkBox = [UIImage imageNamed:@"Checkbox"];
self.checkBoxLeft = [UIButton buttonWithType:UIButtonTypeCustom];
[self.checkBoxLeft setImage:checkBox forState:UIControlStateNormal];
[self.checkBoxLeft setFrame:checkBoxFrameLeft];
[self.checkBoxLeft addTarget:self
action:@selector(checkBoxTapped:)
forControlEvents:UIControlEventTouchDown];
[self.checkBoxLeft setTitle:@"checkBoxLeft" forState:UIControlStateNormal];
self.checkBoxLeft.contentEdgeInsets = insets;
self.checkBoxLeft.showsTouchWhenHighlighted = NO; // Keeps it from turning gray
self.checkBoxRight = [UIButton buttonWithType:UIButtonTypeCustom];
[self.checkBoxRight setImage:checkBox forState:UIControlStateNormal];
[self.checkBoxRight setFrame:checkBoxFrameRight];
[self.checkBoxRight addTarget:self
action:@selector(checkBoxTapped:)
forControlEvents:UIControlEventTouchDown];
[self.checkBoxRight setTitle:@"checkBoxRight" forState:UIControlStateNormal];
self.checkBoxRight.contentEdgeInsets = insets;
self.checkBoxRight.showsTouchWhenHighlighted = NO; // Keeps it from turning gray
- (void)checkBoxTapped:(UIButton *)buttonPressed {
[[self delegate] checkBoxTapped:buttonPressed.currentTitle];
}
- (void)highlightCheckbox:(NSString *)checkboxToHighlight withHighlight:(NSString *)highlight {
if ([checkboxToHighlight isEqualToString:@"left"]){
[self.checkBoxLeft setImage:[UIImage imageNamed:highlight] forState:UIControlStateNormal];
} else {
[self.checkBoxRight setImage:[UIImage imageNamed:highlight] forState:UIControlStateNormal];
}
}
// definire la proprietà di pulsante
Dichiarare Immagine incontrollato
- (void)viewDidLoad
{
[_checkboxButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
}
Immagine Controllato.
- (IBAction)buttonTapped:(id)sender
{
if (_checkboxButton.selected == YES)
{
[_checkboxButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateSelected];
_checkboxButton.selected = NO;
}
else
{
[_checkboxButton setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
_checkboxButton.selected = YES;
}
}
UISegmentedControl può aiutare a – 0xDE4E15B
Usa UIButton Uniti per i marchi di controllo deselezionare /. Metti le immagini di deselezionare (stato normale) e controlla (stato selezionato). – Hirak
No, non esiste un controllo UI predefinito per la casella di controllo o il pulsante di opzione, in questo caso è necessario utilizzare 2 immagini diverse per controllare e deselezionare e controllarle logicamente. – kulss