Ich gründe ein UIPickerView
auf Entscheidungen zu haben wie Wahl eine, Wahl b, Wahl c und so weiter. Ich habe versucht, den Beispielcode von Apple zu interpretieren, aber das scheint für einen Anfänger wie mich sehr schwierig zu verstehen. Ich möchte auch, dass die Auswahl aus der Auswahlansicht mich zu einer anderen Seite führt, wenn das möglich ist.Wie würde ich ein UIPickerView einrichten?
Antwort
Es ist offensichtlich für jeden Anfänger, dass es etwas mühsam ist, diese Dinge beim ersten Mal zu verstehen.
Wie auch immer, wissen Sie, wie man UITableView
s verwendet? Können Sie UITableViewDelegate
und UITableViewDataSource
verwenden? Wenn Ihre Antwort ja ist, dann stellen Sie sich einfach vor UIPickerView
s sind wie UITableView
s (aber denken Sie daran, sie sind nicht UITableViewController
s).
Lassen Sie uns sagen, ich habe ein UIPickerView
:
UIPickerView *objPickerView = [UIPickerView new]; // You need to set frame or other properties and add to your view...you can either use XIB code...
1) Zuerst müssen Sie die delegate
und dataSource
zum UIPickerView
entweder über IB oder Code zuweisen. Es hängt von der jeweiligen Implementierung (also dieser Schritt sieht sehr ähnlich einem UITableView
, nicht wahr?)
So:
objPickerView.delegate = self; // Also, can be done from IB, if you're using
objPickerView.dataSource = self;// Also, can be done from IB, if you're using
2) Als nächstes Sie mehrere Abschnitte definieren müssen, wie diese :
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1; // Or return whatever as you intend
}
2) Dann müssen Sie die Anzahl der Zeilen, die Sie brauchen, um zu definieren:
- (NSInteger)pickerView:(UIPickerView *)thePickerView
numberOfRowsInComponent:(NSInteger)component {
return 3;//Or, return as suitable for you...normally we use array for dynamic
}
3) Dann definieren, Titel für Zeile (Und wenn Sie mehr Schnitt haben, dann Titel für jeden Abschnitt):
- (NSString *)pickerView:(UIPickerView *)thePickerView
titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [NSString stringWithFormat:@"Choice-%d",row];//Or, your suitable title; like Choice-a, etc.
}
4) Als nächstes müssen Sie das Ereignis erhalten, wenn jemand ein Element klickt (Wie Sie navigieren mögen anderer Controller/Bildschirm):
- (void)pickerView:(UIPickerView *)thePickerView
didSelectRow:(NSInteger)row
inComponent:(NSInteger)component {
//Here, like the table view you can get the each section of each row if you've multiple sections
NSLog(@"Selected Color: %@. Index of selected color: %i",
[arrayColors objectAtIndex:row], row);
//Now, if you want to navigate then;
// Say, OtherViewController is the controller, where you want to navigate:
OtherViewController *objOtherViewController = [OtherViewController new];
[self.navigationController pushViewController:objOtherViewController animated:YES];
}
Das ist die Implementierung, die Sie benötigen.
Ein UIPickerView verwendet einen ähnlichen Part wie ein UITableView. DataSource
und Delegate
Protokoll.
Die Methoden DataSource
werden verwendet, um dem Kommissionierer mitzuteilen, wie viele 'Spalten' und wie viele 'Zeilen' in Ihrem Picker vorhanden sind.
Während die Delegate
Methoden sind für den Rest, Höhe der Zeilen, Breite der Spalten, Ansichten oder Titel anzuzeigen und einen Rückruf, wenn der Pflücker verschoben wurde.
UIPickerView
Ich werde kurz erklären, wie das erreichen programmatisch
- (void)viewDidLoad {
[super viewDidLoad];
UIPickerView * picker = [UIPickerView new];
picker.delegate = self;
picker.dataSource = self;
picker.showsSelectionIndicator = YES;
[self.view addSubview:picker];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return 3;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
NSString * title = nil;
switch(row) {
case 0:
title = @"a";
break;
case 1:
title = @"b";
break;
case 2:
title = @"c";
break;
}
return title;
}
Grundsätzlich im viewDidLoad
wir schaffen und eine UIPickerView
zu der Ansicht hinzufügen, es zu sagen, dass unser Controller sowohl als delegate
und dataSource
dient (können Sie auch tut dies im Interface Builder)
Dann werden wir zwei Datenquelle Methoden, um die Umsetzung zu sagen, wie viele Komponenten und wie viele Zeilen pro Komponenten der picker hat jeweils numberOfComponentsinPickerView:
und pickerView:numberOfRowsInComponent:
Schließlich implementieren wir die Delegate-Methode pickerView:titleForRow:forComponent:
, die den Inhalt jeder Zeile zurückgibt.
Wenn Sie das Verhalten anpassen möchten, wenn eine Zeile ausgewählt wurde, können Sie die Delegate-Methode pickerView:didSelectRow:inComponent:
implementieren, die - wie der Name schon sagt - jedes Mal aufgerufen wird, wenn eine Zeile ausgewählt wird.
Vergessen Sie nicht, den Rahmen festzulegen. –
- 1. Wie würde ich eine Wischgeste einrichten, die den Tastaturcursor bewegt?
- 2. Wie kann ich ein Häkchen neben UIPickerView-Labels erhalten?
- 3. Wie würde ich
- 4. Wie kann ich Text auf UIPickerView erhalten?
- 5. Wie würde ich ein Photoshop-Plugin für ein Bildformat schreiben?
- 6. UIPickerView Wie zeige ich nichts ausgewählt?
- 7. Wie ändere ich, was die UIPickerView sagt?
- 8. Wie ich ein CGPDFOperatorTableSetCallback in SWIFT (nicht Objective C) einrichten
- 9. Wie würde ich ein Bookmarklet wie das mit köstlichen
- 10. UIPickerView-Zeilenfarbe
- 11. UIPickerView Daten
- 12. Multithreading: Wann würde ich ein Join verwenden?
- 13. UIPickerView und UITextField erhalten Wert von UIPickerView
- 14. Wie würde ich Fiddler ausführen?
- 15. Wie ändere ich die Textgröße und die Komponentenbreite eines UIPickerView?
- 16. Wie würde ich ein Fenster mit dem Win32 Api animieren?
- 17. Wie würde ich ein reaktionsfähiges Layout in Java Swing erstellen
- 18. Wie würde ich ein Repository für mehrere Datenzugriffsstrategien entwickeln?
- 19. Wie würde ich ein neues NSWindow über Objective-C erstellen?
- 20. Wie würde ich ein Sternebewertungssystem in mein Database Design implementieren?
- 21. Wie würde ich ein Modell für diese WatchKit-Komplikationen erstellen?
- 22. Wie würde ich ein Array von Strukturen sortieren?
- 23. Wie würde ich ein separates Model-Projekt mit PetaPoco verwenden?
- 24. RxJS: Wie würde ich ein Observable "manuell" aktualisieren?
- 25. Wie würde ich eine css3-Animation in ein Video umwandeln?
- 26. Wie würde ich ein sechseckiges Prisma mit OpenTK C# erstellen?
- 27. Wie kann ich ein einfaches Großprojekt einrichten, das sqlite4java verwendet?
- 28. Wie und wo kann ich Server für ein Lernprojekt einrichten?
- 29. Wie kann ich ein EVENT in phpmyadmin einrichten?
- 30. Wie kann ich Tastenkombinationen für ein Windows Forms TabControl einrichten?
poste deinen vorläufigen Code und erkläre, wo er fehlschlägt. –
Wir haben eine große Ressourcen, um im Internet zu lernen. Bevor Sie hier eine Frage stellen, müssen Sie etwas Forschung und versuchen Sie etwas und dann, wenn Sie irgendein Problem SO ist der Ort für Sie. Versuchen Sie diesen Link http: //www.iphonesdkarticles .com/2009/01/uipickerview-creating-simple-picker.html. –
möglich Duplikat von [iPhone UIPickerView in UIViewController] (http://stackoverflow.com/questions/2250063/iphone-uipickerview-in-uiviewcontroller) –