wake-up-neo.com

Beste Radio-Button-Implementierung für IOS

Ich würde gerne fragen, ob es Beispiele gibt, wie Sie Optionsfelder in einer iPhone-App implementieren können.

Ich finde die Picker-Ansicht für eine einfache Auswahl sehr groß.

Ich bin nicht sicher, ob Apple Optionsfelder absichtlich ausgeschlossen hat und ob es besser ist, einfach eine Picker-Ansicht aus Sicht der Benutzerfreundlichkeit/Benutzererfahrung zu verwenden.

45
Jonas Arcangel

Ich habe einige Gedanken darüber, wie die beste Implementierung von Radioknöpfen aussehen sollte. Sie kann auf der UIButton-Klasse basieren und den Status "ausgewählt" verwenden, um einen aus der Gruppe anzuzeigen. Die Variable UIButton verfügt über systemeigene Anpassungsoptionen in IB. Daher ist es bequem, XIBs zu entwerfen. Außerdem sollte es eine einfache Möglichkeit geben, Schaltflächen mithilfe von IB-Ausgangsverbindungen zu gruppieren: 

Ich habe meine Ideen in dieser RadioButton Klasse implementiert. Klappt wunderbar:

Laden Sie das Beispielprojekt herunter .

41
onegray

Versuchen Sie UISegmentedControl . Es verhält sich ähnlich wie Radioknöpfe - stellt eine Reihe von Auswahlmöglichkeiten bereit und lässt den Benutzer auswählen 1. 

24
jlstrecker

Ich möchte nur zusammenfassen, es gibt vier Möglichkeiten. 

  • Wenn Sie nicht viel Platz haben, fügen Sie ein Klickereignis für Text oder Schaltfläche hinzu. Zeigen Sie dann UIPickerView an:

UIPickerView

oder öffnen Sie ein neues TableView-Steuerelement mit einem Häkchen: 

UITableView

  • Wenn mehr Speicherplatz vorhanden ist, fügen Sie der Hauptansicht eine Tabellenansicht direkt hinzu: 

enter image description here

  • Die endgültige Lösung verwendet UISegmentedControl: 

enter image description here

Hoffe das hilft. 

18
thanhbinh84

Try DLRadioButton funktioniert sowohl für Swift als auch für ObjC. Sie können Bilder auch verwenden, um den Auswahlstatus anzuzeigen oder Ihren eigenen Stil anzupassen. 

Schau es dir unter GitHub an. 

radio button for iOS

** Update: Die Option zum Setzen des Auswahlkennzeichens auf der rechten Seite wurde hinzugefügt.

** Update: Quadratische Schaltfläche hinzugefügt, IBDesignable, verbesserte Leistung.

** Update: Unterstützung für Mehrfachauswahl hinzugefügt.

7
David Liu

Für Optionsbildschirme, insbesondere wenn mehrere Funkgruppen vorhanden sind, verwende ich gerne eine gruppierte Tabellenansicht. Jede Gruppe ist eine Funkgruppe und jede Zelle eine Auswahl innerhalb der Gruppe. Es ist trivial, die Zubehöransicht einer Zelle für ein Häkchen zu verwenden, das die gewünschte Option angibt.

Wenn nur UIPickerView etwas kleiner gemacht werden könnte oder die Farbverläufe besser geeignet sind, um zwei Seiten auf einer Seite zu kacheln ...

6
Adam Eberbach

Ich weiß, dass es sehr spät ist, dies zu beantworten, aber ich hoffe, dass dies jedem helfen kann.

sie können Schaltflächen wie Optionsfelder mit IBOutletCollection erstellen. Erstellen Sie eine IBOutletCollection-Eigenschaft in unserer .h-Datei.

@property (nonatomic, strong) IBOutletCollection(UIButton) NSArray *ButtonArray;

verbinden Sie alle Schaltflächen mit dieser IBOutletCollection und erstellen Sie eine IBAction-Methode für alle drei Schaltflächen.

- (IBAction)btnTapped:(id)sender {
       for ( int i=0; i < [self.ButtonArray count]; i++) {
           [[self.ButtonArray objectAtIndex:i] setImage:[UIImage                         
            imageNamed:@"radio-off.png"]                 
            forState:UIControlStateNormal];
       }
     [sender setImage:[UIImage imageNamed:@"radio-on.png"]
      forState:UIControlStateNormal];
}
6
riddhi

Ich habe einen Controller geschrieben, um die Logik hinter einer Reihe von Optionsfeldern zu handhaben. Es ist Open Source und auf GitHub, schau es dir an!

https://github.com/goosoftware/GSRadioButtonSetController

5
Simon Whitaker
-(void)radiobutton:(id)sender
{
ischecked =!ischecked;
UIButton *check = (UIButton*)sender;
if(ischecked == NO)
    [check setImage:[UIImage imageNamed:@"checkbox1.png"] forState:UIControlStateNormal];
else 
    [check setImage:[UIImage imageNamed:@"checkbox-pressed.png"] forState:UIControlStateNormal];
}
0
Sakshi Singla

Die folgende einfache Methode zum Erstellen eines Optionsfelds in Ihrer iOS-App besteht aus zwei Schritten.

Schritt 1 - Füge diesen Code in dein in viewDidLoad oder in eine andere gewünschte Methode ein

 [_mrRadio setSelected:YES];
        [_mrRadio setTag:1];
        [_msRadio setTag:1];
        [_mrRadio setBackgroundImage:[UIImage imageNamed:@"radiodselect_white.png"] forState:UIControlStateNormal];
        [_mrRadio setBackgroundImage:[UIImage imageNamed:@"radioselect_white.png"] forState:UIControlStateSelected];
        [_mrRadio addTarget:self action:@selector(radioButtonSelected:) forControlEvents:UIControlEventTouchUpInside];

        [_msRadio setBackgroundImage:[UIImage imageNamed:@"radiodselect_white.png"] forState:UIControlStateNormal];
        [_msRadio setBackgroundImage:[UIImage imageNamed:@"radioselect_white.png"] forState:UIControlStateSelected];
        [_msRadio addTarget:self action:@selector(radioButtonSelected:) forControlEvents:UIControlEventTouchUpInside];

Step2- Füge folgende IBAction-Methode in deine Klasse ein

-(void)radioButtonSelected:(id)sender
{
    switch ([sender tag ]) {
        case 1:
            if ([_mrRadio isSelected]==YES) {
              //  [_mrRadio setSelected:NO];
               // [_msRadio setSelected:YES];
               genderType = @"1";
            }
            else
            {
                [_mrRadio setSelected:YES];
                [_msRadio setSelected:NO];
                genderType = @"1";
            }
            break;
        case 2:
            if ([_msRadio isSelected]==YES) {
               // [_msRadio setSelected:NO];
               // [_mrRadio setSelected:YES];
                genderType = @"2";
            }
            else
            {
                [_msRadio setSelected:YES];
                [_mrRadio setSelected:NO];
                 genderType = @"2";
            }
            break;
        default:
            break;
    }
}