Gibt es eine Möglichkeit, die Ansicht aller Schaltflächen zu löschen? Mein Code erzeugt jede Sekunde Schaltflächen und ich habe eine Schaltfläche erstellt, mit der ich sie alle vom Bildschirm löschen möchte. Als ich [brick.removeFromSuperview]
versuchte (Ziegelstein ist der Name des Knopfes), löschte es nur den letzten Knopf, der produziert wurde.Schaltflächen aus einer Ansicht entfernen
Antwort
Sie können die Referenzen zu all Ihren Tasten in einer NSMutableArray
verfolgen.
e.x.
NSMutableArray *buttons = [[NSMutableArray alloc] init];
// Button creation
UIButton *button = [[UIButton alloc] init...];
[yourView addSubview:button];
[buttons addObject:button];
[button release];
// Button removal
[buttons makeObjectsPerformSelector:@selector(removeFromSuperview)];
[buttons removeAllObjects]; // Alternatively, you could omit this line
// and recycle the buttons at a later time
Ein Vorteil dieser Methode (wie die Auffassung der Subviews nur gegen Aufzählen und suchen Tasten) ist, dass Sie kümmern müssen nicht über UIButtons aus Ihrer Sicht zu entfernen, die nicht sein sollte. Wenn Sie beispielsweise nicht möchten, dass die Schaltfläche "Alle Schaltflächen löschen" entfernt wird, fügen Sie sie einfach nicht zum Array hinzu.
for (UIView *view in [self subviews]) {
if ([view isKindOfClass:[UIButton class]]) {
[view removeFromSuperview];
}
}
Vorsicht, dies wird buchstäblich alle Schaltflächen aus der angegebenen Ansicht löschen. Sie möchten wahrscheinlich eine Art Bedingung, um nur die generierten Schaltflächen zu löschen. Sie können von generierten Tasten unterscheiden, indem Sie eine tag
auf Ihren anderen Tasten setzen, wenn die Taste keine Markierung hat, dann entfernen Sie sie.
Warum die down vote? –
NSMutableArray * buttons = [[NSMutableArray alloc] init];
for(NSObject * btn in btn.superview.subviews)
{
if([btn isKindOfClass: [UIButton class]])
[buttons addObject: btn];
}
for(UIView * btn in buttons)
[btn removeFromSuperview];
[buttons release];
das temporäre Array erforderlich ist, weil die Schaltfläche Entfernen der Enumerator Herstellung unvorhersehbare Ergebnisse invalidiert.
- 1. DebugKit-Markup aus einer Ansicht entfernen
- 2. Entfernen von Schaltflächen aus einem UIScrollView
- 3. Entfernen einer Ansicht von einer Aktivität
- 4. Entfernen Sie alle Objekte aus einer uiview?
- 5. alle Unterschichten aus einer Ansicht
- 6. iOS Hinzufügen/Entfernen von Schatten aus einer Ansicht
- 7. Entfernen Sie einen Listener aus einer Ansicht in Android
- 8. Wie ändere ich die Schaltflächen der Navigationsleiste in einer Ansicht?
- 9. Rahmen von den Schaltflächen entfernen
- 10. Entfernen einer Ansicht Aufschieben so es
- 11. Entfernen aus einer Sammlung
- 12. Fehler beim Entfernen einer Ansicht von superview
- 13. Entfernen einer Ansicht von einem Ansichtscontroller
- 14. Reuse Code aus einer Django Ansicht in einer anderen Ansicht
- 15. Absicht: Entfernen immer/nur einmal Schaltflächen
- 16. Toggle Elemente Ansicht auf Schaltflächen klicken
- 17. Entfernen Minimieren/Maximieren-Schaltflächen in Tkinter
- 18. Erhalten von Werten aus einer PHP-Variablen in einer Ansicht
- 19. Schaltflächen werden nicht angezeigt oder entfernen sich in GridLayout
- 20. Nullwerte aus einer Karte entfernen?
- 21. entfernen aus einer Spalte .x
- 22. Fallsensitivität aus einer Zeichenfolge entfernen
- 23. Elemente aus einer Combobox entfernen
- 24. Entfernen Sie alle Objekte aus einer UIView
- 25. Android entfernen Sie eine Ansicht aus einem Dialogfeld?
- 26. C# Entfernen einer Liste aus einer Liste
- 27. Beobachter aus Unteransicht entfernen
- 28. Eine Ansicht programmgesteuert aus einer bereits vorhandenen Ansicht duplizieren.
- 29. Aufruf der Ansicht-Funktion aus einer anderen Ansicht - Backbone
- 30. Hinzufügen von Schaltflächen unter einer Tabellenansicht
Ich bin neugierig ... warum erstellt Ihre App jede Sekunde Schaltflächen? Ist das eine Art Spiel? – donkim